1QEMU-QMP-REF.7(7) QEMU-QMP-REF.7(7)
2
3
4
6 qemu-qmp-ref - QEMU QMP Reference Manual
7
9 Introduction
10 This document describes all commands currently supported by QMP.
11
12 Most of the time their usage is exactly the same as in the user
13 Monitor, this means that any other document which also describe
14 commands (the manpage, QEMU's manual, etc) can and should be consulted.
15
16 QMP has two types of commands: regular and query commands. Regular
17 commands usually change the Virtual Machine's state someway, while
18 query commands just return information. The sections below are divided
19 accordingly.
20
21 It's important to observe that all communication examples are formatted
22 in a reader-friendly way, so that they're easier to understand.
23 However, in real protocol usage, they're emitted as a single line.
24
25 Also, the following notation is used to denote data flow:
26
27 Example:
28
29 -> data issued by the Client
30
31
32
33 <- Server data response
34
35 Please, refer to the QMP specification (docs/interop/qmp-spec.txt) for
36 detailed information on the Server command and response formats.
37
38 Stability Considerations
39 The current QMP command set (described in this file) may be useful for
40 a number of use cases, however it's limited and several commands have
41 bad defined semantics, specially with regard to command completion.
42
43 These problems are going to be solved incrementally in the next QEMU
44 releases and we're going to establish a deprecation policy for badly
45 defined commands.
46
47 If you're planning to adopt QMP, please observe the following:
48
49 1. The deprecation policy will take effect and be documented soon,
50 please check the documentation of each used command as soon as a
51 new release of QEMU is available
52
53 2. DO NOT rely on anything which is not explicit documented
54
55 3. Errors, in special, are not documented. Applications should NOT
56 check for specific errors classes or data (it's strongly
57 recommended to only check for the "error" key)
58
59 QMP errors
60 QapiErrorClass (Enum)
61
62 QEMU error classes
63
64 Values:
65
66 "GenericError"
67 this is used for errors that don't require a specific error class.
68 This should be the default case for most errors
69
70 "CommandNotFound"
71 the requested command has not been found
72
73 "DeviceNotActive"
74 a device has failed to be become active
75
76 "DeviceNotFound"
77 the requested device has not been found
78
79 "KVMMissingCap"
80 the requested operation can't be fulfilled because a required KVM
81 capability is missing
82
83 Since: 1.2
84
85 Common data types
86 IoOperationType (Enum)
87
88 An enumeration of the I/O operation types
89
90 Values:
91
92 "read"
93 read operation
94
95 "write"
96 write operation
97
98 Since: 2.1
99
100 OnOffAuto (Enum)
101
102 An enumeration of three options: on, off, and auto
103
104 Values:
105
106 "auto"
107 QEMU selects the value between on and off
108
109 "on"
110 Enabled
111
112 "off"
113 Disabled
114
115 Since: 2.2
116
117 OnOffSplit (Enum)
118
119 An enumeration of three values: on, off, and split
120
121 Values:
122
123 "on"
124 Enabled
125
126 "off"
127 Disabled
128
129 "split"
130 Mixed
131
132 Since: 2.6
133
134 String (Object)
135
136 A fat type wrapping 'str', to be embedded in lists.
137
138 Members:
139
140 "str: string"
141 Not documented
142
143 Since: 1.2
144
145 StrOrNull (Alternate)
146
147 This is a string value or the explicit lack of a string (null pointer
148 in C). Intended for cases when 'optional absent' already has a
149 different meaning.
150
151 Members:
152
153 "s: string"
154 the string value
155
156 "n: null"
157 no string value
158
159 Since: 2.10
160
161 OffAutoPCIBAR (Enum)
162
163 An enumeration of options for specifying a PCI BAR
164
165 Values:
166
167 "off"
168 The specified feature is disabled
169
170 "auto"
171 The PCI BAR for the feature is automatically selected
172
173 "bar0"
174 PCI BAR0 is used for the feature
175
176 "bar1"
177 PCI BAR1 is used for the feature
178
179 "bar2"
180 PCI BAR2 is used for the feature
181
182 "bar3"
183 PCI BAR3 is used for the feature
184
185 "bar4"
186 PCI BAR4 is used for the feature
187
188 "bar5"
189 PCI BAR5 is used for the feature
190
191 Since: 2.12
192
193 PCIELinkSpeed (Enum)
194
195 An enumeration of PCIe link speeds in units of GT/s
196
197 Values:
198
199 "2_5"
200 2.5GT/s
201
202 5 5.0GT/s
203
204 8 8.0GT/s
205
206 16 16.0GT/s
207
208 Since: 4.0
209
210 PCIELinkWidth (Enum)
211
212 An enumeration of PCIe link width
213
214 Values:
215
216 1 x1
217
218 2 x2
219
220 4 x4
221
222 8 x8
223
224 12 x12
225
226 16 x16
227
228 32 x32
229
230 Since: 4.0
231
232 Socket data types
233 NetworkAddressFamily (Enum)
234
235 The network address family
236
237 Values:
238
239 "ipv4"
240 IPV4 family
241
242 "ipv6"
243 IPV6 family
244
245 "unix"
246 unix socket
247
248 "vsock"
249 vsock family (since 2.8)
250
251 "unknown"
252 otherwise
253
254 Since: 2.1
255
256 InetSocketAddressBase (Object)
257
258 Members:
259
260 "host: string"
261 host part of the address
262
263 "port: string"
264 port part of the address
265
266 InetSocketAddress (Object)
267
268 Captures a socket address or address range in the Internet namespace.
269
270 Members:
271
272 "numeric: boolean" (optional)
273 true if the host/port are guaranteed to be numeric, false if name
274 resolution should be attempted. Defaults to false. (Since 2.9)
275
276 "to: int" (optional)
277 If present, this is range of possible addresses, with port between
278 "port" and "to".
279
280 "ipv4: boolean" (optional)
281 whether to accept IPv4 addresses, default try both IPv4 and IPv6
282
283 "ipv6: boolean" (optional)
284 whether to accept IPv6 addresses, default try both IPv4 and IPv6
285
286 "keep-alive: boolean" (optional)
287 enable keep-alive when connecting to this socket. Not supported for
288 passive sockets. (Since 4.2)
289
290 The members of "InetSocketAddressBase"
291
292 Since: 1.3
293
294 UnixSocketAddress (Object)
295
296 Captures a socket address in the local ("Unix socket") namespace.
297
298 Members:
299
300 "path: string"
301 filesystem path to use
302
303 Since: 1.3
304
305 VsockSocketAddress (Object)
306
307 Captures a socket address in the vsock namespace.
308
309 Members:
310
311 "cid: string"
312 unique host identifier
313
314 "port: string"
315 port
316
317 Note: string types are used to allow for possible future hostname or
318 service resolution support.
319
320 Since: 2.8
321
322 SocketAddressLegacy (Object)
323
324 Captures the address of a socket, which could also be a named file
325 descriptor
326
327 Members:
328
329 "type"
330 One of "inet", "unix", "vsock", "fd"
331
332 "data: InetSocketAddress" when "type" is "inet"
333 "data: UnixSocketAddress" when "type" is "unix"
334 "data: VsockSocketAddress" when "type" is "vsock"
335 "data: String" when "type" is "fd"
336
337 Note: This type is deprecated in favor of SocketAddress. The
338 difference between SocketAddressLegacy and SocketAddress is that the
339 latter is a flat union rather than a simple union. Flat is nicer
340 because it avoids nesting on the wire, i.e. that form has fewer {}.
341
342 Since: 1.3
343
344 SocketAddressType (Enum)
345
346 Available SocketAddress types
347
348 Values:
349
350 "inet"
351 Internet address
352
353 "unix"
354 Unix domain socket
355
356 "vsock"
357 VMCI address
358
359 "fd"
360 decimal is for file descriptor number, otherwise a file descriptor
361 name. Named file descriptors are permitted in monitor commands, in
362 combination with the 'getfd' command. Decimal file descriptors are
363 permitted at startup or other contexts where no monitor context is
364 active.
365
366 Since: 2.9
367
368 SocketAddress (Object)
369
370 Captures the address of a socket, which could also be a named file
371 descriptor
372
373 Members:
374
375 "type: SocketAddressType"
376 Transport type
377
378 The members of "InetSocketAddress" when "type" is "inet"
379 The members of "UnixSocketAddress" when "type" is "unix"
380 The members of "VsockSocketAddress" when "type" is "vsock"
381 The members of "String" when "type" is "fd"
382
383 Since: 2.9
384
385 VM run state
386 RunState (Enum)
387
388 An enumeration of VM run states.
389
390 Values:
391
392 "debug"
393 QEMU is running on a debugger
394
395 "finish-migrate"
396 guest is paused to finish the migration process
397
398 "inmigrate"
399 guest is paused waiting for an incoming migration. Note that this
400 state does not tell whether the machine will start at the end of
401 the migration. This depends on the command-line -S option and any
402 invocation of 'stop' or 'cont' that has happened since QEMU was
403 started.
404
405 "internal-error"
406 An internal error that prevents further guest execution has
407 occurred
408
409 "io-error"
410 the last IOP has failed and the device is configured to pause on
411 I/O errors
412
413 "paused"
414 guest has been paused via the 'stop' command
415
416 "postmigrate"
417 guest is paused following a successful 'migrate'
418
419 "prelaunch"
420 QEMU was started with -S and guest has not started
421
422 "restore-vm"
423 guest is paused to restore VM state
424
425 "running"
426 guest is actively running
427
428 "save-vm"
429 guest is paused to save the VM state
430
431 "shutdown"
432 guest is shut down (and -no-shutdown is in use)
433
434 "suspended"
435 guest is suspended (ACPI S3)
436
437 "watchdog"
438 the watchdog action is configured to pause and has been triggered
439
440 "guest-panicked"
441 guest has been panicked as a result of guest OS panic
442
443 "colo"
444 guest is paused to save/restore VM state under colo checkpoint, VM
445 can not get into this state unless colo capability is enabled for
446 migration. (since 2.8)
447
448 "preconfig"
449 QEMU is paused before board specific init callback is executed.
450 The state is reachable only if the --preconfig CLI option is used.
451 (Since 3.0)
452
453 ShutdownCause (Enum)
454
455 An enumeration of reasons for a Shutdown.
456
457 Values:
458
459 "none"
460 No shutdown request pending
461
462 "host-error"
463 An error prevents further use of guest
464
465 "host-qmp-quit"
466 Reaction to the QMP command 'quit'
467
468 "host-qmp-system-reset"
469 Reaction to the QMP command 'system_reset'
470
471 "host-signal"
472 Reaction to a signal, such as SIGINT
473
474 "host-ui"
475 Reaction to a UI event, like window close
476
477 "guest-shutdown"
478 Guest shutdown/suspend request, via ACPI or other hardware-specific
479 means
480
481 "guest-reset"
482 Guest reset request, and command line turns that into a shutdown
483
484 "guest-panic"
485 Guest panicked, and command line turns that into a shutdown
486
487 "subsystem-reset"
488 Partial guest reset that does not trigger QMP events and ignores
489 --no-reboot. This is useful for sanitizing hypercalls on s390 that
490 are used during kexec/kdump/boot
491
492 StatusInfo (Object)
493
494 Information about VCPU run state
495
496 Members:
497
498 "running: boolean"
499 true if all VCPUs are runnable, false if not runnable
500
501 "singlestep: boolean"
502 true if VCPUs are in single-step mode
503
504 "status: RunState"
505 the virtual machine "RunState"
506
507 Since: 0.14.0
508
509 Notes: "singlestep" is enabled through the GDB stub
510
511 query-status (Command) Query the run status of all VCPUs
512
513 Returns: "StatusInfo" reflecting all VCPUs
514
515 Since: 0.14.0
516
517 Example:
518
519 -> { "execute": "query-status" }
520 <- { "return": { "running": true,
521 "singlestep": false,
522 "status": "running" } }
523
524 SHUTDOWN (Event) Emitted when the virtual machine has shut down,
525 indicating that qemu is about to exit.
526
527 Arguments:
528
529 "guest: boolean"
530 If true, the shutdown was triggered by a guest request (such as a
531 guest-initiated ACPI shutdown request or other hardware-specific
532 action) rather than a host request (such as sending qemu a SIGINT).
533 (since 2.10)
534
535 "reason: ShutdownCause"
536 The "ShutdownCause" which resulted in the SHUTDOWN. (since 4.0)
537
538 Note: If the command-line option "-no-shutdown" has been specified,
539 qemu will not exit, and a STOP event will eventually follow the
540 SHUTDOWN event
541
542 Since: 0.12.0
543
544 Example:
545
546 <- { "event": "SHUTDOWN", "data": { "guest": true },
547 "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
548
549 POWERDOWN (Event) Emitted when the virtual machine is powered down
550 through the power control system, such as via ACPI.
551
552 Since: 0.12.0
553
554 Example:
555
556 <- { "event": "POWERDOWN",
557 "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
558
559 RESET (Event) Emitted when the virtual machine is reset
560
561 Arguments:
562
563 "guest: boolean"
564 If true, the reset was triggered by a guest request (such as a
565 guest-initiated ACPI reboot request or other hardware-specific
566 action) rather than a host request (such as the QMP command
567 system_reset). (since 2.10)
568
569 "reason: ShutdownCause"
570 The "ShutdownCause" of the RESET. (since 4.0)
571
572 Since: 0.12.0
573
574 Example:
575
576 <- { "event": "RESET", "data": { "guest": false },
577 "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
578
579 STOP (Event) Emitted when the virtual machine is stopped
580
581 Since: 0.12.0
582
583 Example:
584
585 <- { "event": "STOP",
586 "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
587
588 RESUME (Event) Emitted when the virtual machine resumes execution
589
590 Since: 0.12.0
591
592 Example:
593
594 <- { "event": "RESUME",
595 "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
596
597 SUSPEND (Event) Emitted when guest enters a hardware suspension state,
598 for example, S3 state, which is sometimes called standby state
599
600 Since: 1.1
601
602 Example:
603
604 <- { "event": "SUSPEND",
605 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
606
607 SUSPEND_DISK (Event) Emitted when guest enters a hardware suspension
608 state with data saved on disk, for example, S4 state, which is
609 sometimes called hibernate state
610
611 Note: QEMU shuts down (similar to event "SHUTDOWN") when entering this
612 state
613
614 Since: 1.2
615
616 Example:
617
618 <- { "event": "SUSPEND_DISK",
619 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
620
621 WAKEUP (Event) Emitted when the guest has woken up from suspend state
622 and is running
623
624 Since: 1.1
625
626 Example:
627
628 <- { "event": "WAKEUP",
629 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
630
631 WATCHDOG (Event) Emitted when the watchdog device's timer is expired
632
633 Arguments:
634
635 "action: WatchdogAction"
636 action that has been taken
637
638 Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event
639 is followed respectively by the RESET, SHUTDOWN, or STOP events
640
641 Note: This event is rate-limited.
642
643 Since: 0.13.0
644
645 Example:
646
647 <- { "event": "WATCHDOG",
648 "data": { "action": "reset" },
649 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
650
651 WatchdogAction (Enum)
652
653 An enumeration of the actions taken when the watchdog device's timer is
654 expired
655
656 Values:
657
658 "reset"
659 system resets
660
661 "shutdown"
662 system shutdown, note that it is similar to "powerdown", which
663 tries to set to system status and notify guest
664
665 "poweroff"
666 system poweroff, the emulator program exits
667
668 "pause"
669 system pauses, similar to "stop"
670
671 "debug"
672 system enters debug state
673
674 "none"
675 nothing is done
676
677 "inject-nmi"
678 a non-maskable interrupt is injected into the first VCPU (all VCPUS
679 on x86) (since 2.4)
680
681 Since: 2.1
682
683 watchdog-set-action (Command) Set watchdog action
684
685 Arguments:
686
687 "action: WatchdogAction"
688 Not documented
689
690 Since: 2.11
691
692 GUEST_PANICKED (Event) Emitted when guest OS panic is detected
693
694 Arguments:
695
696 "action: GuestPanicAction"
697 action that has been taken, currently always "pause"
698
699 "info: GuestPanicInformation" (optional)
700 information about a panic (since 2.9)
701
702 Since: 1.5
703
704 Example:
705
706 <- { "event": "GUEST_PANICKED",
707 "data": { "action": "pause" } }
708
709 GuestPanicAction (Enum)
710
711 An enumeration of the actions taken when guest OS panic is detected
712
713 Values:
714
715 "pause"
716 system pauses
717
718 "poweroff"
719 Not documented
720
721 Since: 2.1 (poweroff since 2.8)
722
723 GuestPanicInformationType (Enum)
724
725 An enumeration of the guest panic information types
726
727 Values:
728
729 "hyper-v"
730 hyper-v guest panic information type
731
732 "s390"
733 s390 guest panic information type (Since: 2.12)
734
735 Since: 2.9
736
737 GuestPanicInformation (Object)
738
739 Information about a guest panic
740
741 Members:
742
743 "type: GuestPanicInformationType"
744 Crash type that defines the hypervisor specific information
745
746 The members of "GuestPanicInformationHyperV" when "type" is "hyper-v"
747 The members of "GuestPanicInformationS390" when "type" is "s390"
748
749 Since: 2.9
750
751 GuestPanicInformationHyperV (Object)
752
753 Hyper-V specific guest panic information (HV crash MSRs)
754
755 Members:
756
757 "arg1: int"
758 Not documented
759
760 "arg2: int"
761 Not documented
762
763 "arg3: int"
764 Not documented
765
766 "arg4: int"
767 Not documented
768
769 "arg5: int"
770 Not documented
771
772 Since: 2.9
773
774 S390CrashReason (Enum)
775
776 Reason why the CPU is in a crashed state.
777
778 Values:
779
780 "unknown"
781 no crash reason was set
782
783 "disabled-wait"
784 the CPU has entered a disabled wait state
785
786 "extint-loop"
787 clock comparator or cpu timer interrupt with new PSW enabled for
788 external interrupts
789
790 "pgmint-loop"
791 program interrupt with BAD new PSW
792
793 "opint-loop"
794 operation exception interrupt with invalid code at the program
795 interrupt new PSW
796
797 Since: 2.12
798
799 GuestPanicInformationS390 (Object)
800
801 S390 specific guest panic information (PSW)
802
803 Members:
804
805 "core: int"
806 core id of the CPU that crashed
807
808 "psw-mask: int"
809 control fields of guest PSW
810
811 "psw-addr: int"
812 guest instruction address
813
814 "reason: S390CrashReason"
815 guest crash reason
816
817 Since: 2.12
818
819 Cryptography
820 QCryptoTLSCredsEndpoint (Enum)
821
822 The type of network endpoint that will be using the credentials. Most
823 types of credential require different setup / structures depending on
824 whether they will be used in a server versus a client.
825
826 Values:
827
828 "client"
829 the network endpoint is acting as the client
830
831 "server"
832 the network endpoint is acting as the server
833
834 Since: 2.5
835
836 QCryptoSecretFormat (Enum)
837
838 The data format that the secret is provided in
839
840 Values:
841
842 "raw"
843 raw bytes. When encoded in JSON only valid UTF-8 sequences can be
844 used
845
846 "base64"
847 arbitrary base64 encoded binary data
848
849 Since: 2.6
850
851 QCryptoHashAlgorithm (Enum)
852
853 The supported algorithms for computing content digests
854
855 Values:
856
857 "md5"
858 MD5. Should not be used in any new code, legacy compat only
859
860 "sha1"
861 SHA-1. Should not be used in any new code, legacy compat only
862
863 "sha224"
864 SHA-224. (since 2.7)
865
866 "sha256"
867 SHA-256. Current recommended strong hash.
868
869 "sha384"
870 SHA-384. (since 2.7)
871
872 "sha512"
873 SHA-512. (since 2.7)
874
875 "ripemd160"
876 RIPEMD-160. (since 2.7)
877
878 Since: 2.6
879
880 QCryptoCipherAlgorithm (Enum)
881
882 The supported algorithms for content encryption ciphers
883
884 Values:
885
886 "aes-128"
887 AES with 128 bit / 16 byte keys
888
889 "aes-192"
890 AES with 192 bit / 24 byte keys
891
892 "aes-256"
893 AES with 256 bit / 32 byte keys
894
895 "des-rfb"
896 RFB specific variant of single DES. Do not use except in VNC.
897
898 "3des"
899 3DES(EDE) with 192 bit / 24 byte keys (since 2.9)
900
901 "cast5-128"
902 Cast5 with 128 bit / 16 byte keys
903
904 "serpent-128"
905 Serpent with 128 bit / 16 byte keys
906
907 "serpent-192"
908 Serpent with 192 bit / 24 byte keys
909
910 "serpent-256"
911 Serpent with 256 bit / 32 byte keys
912
913 "twofish-128"
914 Twofish with 128 bit / 16 byte keys
915
916 "twofish-192"
917 Twofish with 192 bit / 24 byte keys
918
919 "twofish-256"
920 Twofish with 256 bit / 32 byte keys
921
922 Since: 2.6
923
924 QCryptoCipherMode (Enum)
925
926 The supported modes for content encryption ciphers
927
928 Values:
929
930 "ecb"
931 Electronic Code Book
932
933 "cbc"
934 Cipher Block Chaining
935
936 "xts"
937 XEX with tweaked code book and ciphertext stealing
938
939 "ctr"
940 Counter (Since 2.8)
941
942 Since: 2.6
943
944 QCryptoIVGenAlgorithm (Enum)
945
946 The supported algorithms for generating initialization vectors for full
947 disk encryption. The 'plain' generator should not be used for disks
948 with sector numbers larger than 2^32, except where compatibility with
949 pre-existing Linux dm-crypt volumes is required.
950
951 Values:
952
953 "plain"
954 64-bit sector number truncated to 32-bits
955
956 "plain64"
957 64-bit sector number
958
959 "essiv"
960 64-bit sector number encrypted with a hash of the encryption key
961
962 Since: 2.6
963
964 QCryptoBlockFormat (Enum)
965
966 The supported full disk encryption formats
967
968 Values:
969
970 "qcow"
971 QCow/QCow2 built-in AES-CBC encryption. Use only for liberating
972 data from old images.
973
974 "luks"
975 LUKS encryption format. Recommended for new images
976
977 Since: 2.6
978
979 QCryptoBlockOptionsBase (Object)
980
981 The common options that apply to all full disk encryption formats
982
983 Members:
984
985 "format: QCryptoBlockFormat"
986 the encryption format
987
988 Since: 2.6
989
990 QCryptoBlockOptionsQCow (Object)
991
992 The options that apply to QCow/QCow2 AES-CBC encryption format
993
994 Members:
995
996 "key-secret: string" (optional)
997 the ID of a QCryptoSecret object providing the decryption key.
998 Mandatory except when probing image for metadata only.
999
1000 Since: 2.6
1001
1002 QCryptoBlockOptionsLUKS (Object)
1003
1004 The options that apply to LUKS encryption format
1005
1006 Members:
1007
1008 "key-secret: string" (optional)
1009 the ID of a QCryptoSecret object providing the decryption key.
1010 Mandatory except when probing image for metadata only.
1011
1012 Since: 2.6
1013
1014 QCryptoBlockCreateOptionsLUKS (Object)
1015
1016 The options that apply to LUKS encryption format initialization
1017
1018 Members:
1019
1020 "cipher-alg: QCryptoCipherAlgorithm" (optional)
1021 the cipher algorithm for data encryption Currently defaults to
1022 'aes-256'.
1023
1024 "cipher-mode: QCryptoCipherMode" (optional)
1025 the cipher mode for data encryption Currently defaults to 'xts'
1026
1027 "ivgen-alg: QCryptoIVGenAlgorithm" (optional)
1028 the initialization vector generator Currently defaults to 'plain64'
1029
1030 "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1031 the initialization vector generator hash Currently defaults to
1032 'sha256'
1033
1034 "hash-alg: QCryptoHashAlgorithm" (optional)
1035 the master key hash algorithm Currently defaults to 'sha256'
1036
1037 "iter-time: int" (optional)
1038 number of milliseconds to spend in PBKDF passphrase processing.
1039 Currently defaults to 2000. (since 2.8)
1040
1041 The members of "QCryptoBlockOptionsLUKS"
1042
1043 Since: 2.6
1044
1045 QCryptoBlockOpenOptions (Object)
1046
1047 The options that are available for all encryption formats when opening
1048 an existing volume
1049
1050 Members:
1051
1052 The members of "QCryptoBlockOptionsBase"
1053 The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1054 The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
1055
1056 Since: 2.6
1057
1058 QCryptoBlockCreateOptions (Object)
1059
1060 The options that are available for all encryption formats when
1061 initializing a new volume
1062
1063 Members:
1064
1065 The members of "QCryptoBlockOptionsBase"
1066 The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1067 The members of "QCryptoBlockCreateOptionsLUKS" when "format" is "luks"
1068
1069 Since: 2.6
1070
1071 QCryptoBlockInfoBase (Object)
1072
1073 The common information that applies to all full disk encryption formats
1074
1075 Members:
1076
1077 "format: QCryptoBlockFormat"
1078 the encryption format
1079
1080 Since: 2.7
1081
1082 QCryptoBlockInfoLUKSSlot (Object)
1083
1084 Information about the LUKS block encryption key slot options
1085
1086 Members:
1087
1088 "active: boolean"
1089 whether the key slot is currently in use
1090
1091 "key-offset: int"
1092 offset to the key material in bytes
1093
1094 "iters: int" (optional)
1095 number of PBKDF2 iterations for key material
1096
1097 "stripes: int" (optional)
1098 number of stripes for splitting key material
1099
1100 Since: 2.7
1101
1102 QCryptoBlockInfoLUKS (Object)
1103
1104 Information about the LUKS block encryption options
1105
1106 Members:
1107
1108 "cipher-alg: QCryptoCipherAlgorithm"
1109 the cipher algorithm for data encryption
1110
1111 "cipher-mode: QCryptoCipherMode"
1112 the cipher mode for data encryption
1113
1114 "ivgen-alg: QCryptoIVGenAlgorithm"
1115 the initialization vector generator
1116
1117 "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1118 the initialization vector generator hash
1119
1120 "hash-alg: QCryptoHashAlgorithm"
1121 the master key hash algorithm
1122
1123 "payload-offset: int"
1124 offset to the payload data in bytes
1125
1126 "master-key-iters: int"
1127 number of PBKDF2 iterations for key material
1128
1129 "uuid: string"
1130 unique identifier for the volume
1131
1132 "slots: array of QCryptoBlockInfoLUKSSlot"
1133 information about each key slot
1134
1135 Since: 2.7
1136
1137 QCryptoBlockInfo (Object)
1138
1139 Information about the block encryption options
1140
1141 Members:
1142
1143 The members of "QCryptoBlockInfoBase"
1144 The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1145
1146 Since: 2.7
1147
1148 Block devices
1149 Block core (VM unrelated)
1150
1151 Background jobs
1152
1153 JobType (Enum)
1154
1155 Type of a background job.
1156
1157 Values:
1158
1159 "commit"
1160 block commit job type, see "block-commit"
1161
1162 "stream"
1163 block stream job type, see "block-stream"
1164
1165 "mirror"
1166 drive mirror job type, see "drive-mirror"
1167
1168 "backup"
1169 drive backup job type, see "drive-backup"
1170
1171 "create"
1172 image creation job type, see "blockdev-create" (since 3.0)
1173
1174 Since: 1.7
1175
1176 JobStatus (Enum)
1177
1178 Indicates the present state of a given job in its lifetime.
1179
1180 Values:
1181
1182 "undefined"
1183 Erroneous, default state. Should not ever be visible.
1184
1185 "created"
1186 The job has been created, but not yet started.
1187
1188 "running"
1189 The job is currently running.
1190
1191 "paused"
1192 The job is running, but paused. The pause may be requested by
1193 either the QMP user or by internal processes.
1194
1195 "ready"
1196 The job is running, but is ready for the user to signal completion.
1197 This is used for long-running jobs like mirror that are designed to
1198 run indefinitely.
1199
1200 "standby"
1201 The job is ready, but paused. This is nearly identical to "paused".
1202 The job may return to "ready" or otherwise be canceled.
1203
1204 "waiting"
1205 The job is waiting for other jobs in the transaction to converge to
1206 the waiting state. This status will likely not be visible for the
1207 last job in a transaction.
1208
1209 "pending"
1210 The job has finished its work, but has finalization steps that it
1211 needs to make prior to completing. These changes will require
1212 manual intervention via "job-finalize" if auto-finalize was set to
1213 false. These pending changes may still fail.
1214
1215 "aborting"
1216 The job is in the process of being aborted, and will finish with an
1217 error. The job will afterwards report that it is "concluded". This
1218 status may not be visible to the management process.
1219
1220 "concluded"
1221 The job has finished all work. If auto-dismiss was set to false,
1222 the job will remain in the query list until it is dismissed via
1223 "job-dismiss".
1224
1225 "null"
1226 The job is in the process of being dismantled. This state should
1227 not ever be visible externally.
1228
1229 Since: 2.12
1230
1231 JobVerb (Enum)
1232
1233 Represents command verbs that can be applied to a job.
1234
1235 Values:
1236
1237 "cancel"
1238 see "job-cancel"
1239
1240 "pause"
1241 see "job-pause"
1242
1243 "resume"
1244 see "job-resume"
1245
1246 "set-speed"
1247 see "block-job-set-speed"
1248
1249 "complete"
1250 see "job-complete"
1251
1252 "dismiss"
1253 see "job-dismiss"
1254
1255 "finalize"
1256 see "job-finalize"
1257
1258 Since: 2.12
1259
1260 JOB_STATUS_CHANGE (Event) Emitted when a job transitions to a
1261 different status.
1262
1263 Arguments:
1264
1265 "id: string"
1266 The job identifier
1267
1268 "status: JobStatus"
1269 The new job status
1270
1271 Since: 3.0
1272
1273 job-pause (Command) Pause an active job.
1274
1275 This command returns immediately after marking the active job for
1276 pausing. Pausing an already paused job is an error.
1277
1278 The job will pause as soon as possible, which means transitioning into
1279 the PAUSED state if it was RUNNING, or into STANDBY if it was READY.
1280 The corresponding JOB_STATUS_CHANGE event will be emitted.
1281
1282 Cancelling a paused job automatically resumes it.
1283
1284 Arguments:
1285
1286 "id: string"
1287 The job identifier.
1288
1289 Since: 3.0
1290
1291 job-resume (Command) Resume a paused job.
1292
1293 This command returns immediately after resuming a paused job. Resuming
1294 an already running job is an error.
1295
1296 "id" : The job identifier.
1297
1298 Arguments:
1299
1300 "id: string"
1301 Not documented
1302
1303 Since: 3.0
1304
1305 job-cancel (Command) Instruct an active background job to cancel at
1306 the next opportunity. This command returns immediately after marking
1307 the active job for cancellation.
1308
1309 The job will cancel as soon as possible and then emit a
1310 JOB_STATUS_CHANGE event. Usually, the status will change to ABORTING,
1311 but it is possible that a job successfully completes (e.g. because it
1312 was almost done and there was no opportunity to cancel earlier than
1313 completing the job) and transitions to PENDING instead.
1314
1315 Arguments:
1316
1317 "id: string"
1318 The job identifier.
1319
1320 Since: 3.0
1321
1322 job-complete (Command) Manually trigger completion of an active job in
1323 the READY state.
1324
1325 Arguments:
1326
1327 "id: string"
1328 The job identifier.
1329
1330 Since: 3.0
1331
1332 job-dismiss (Command) Deletes a job that is in the CONCLUDED state.
1333 This command only needs to be run explicitly for jobs that don't have
1334 automatic dismiss enabled.
1335
1336 This command will refuse to operate on any job that has not yet reached
1337 its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of
1338 JOB_READY event, job-cancel or job-complete will still need to be used
1339 as appropriate.
1340
1341 Arguments:
1342
1343 "id: string"
1344 The job identifier.
1345
1346 Since: 3.0
1347
1348 job-finalize (Command) Instructs all jobs in a transaction (or a
1349 single job if it is not part of any transaction) to finalize any graph
1350 changes and do any necessary cleanup. This command requires that all
1351 involved jobs are in the PENDING state.
1352
1353 For jobs in a transaction, instructing one job to finalize will force
1354 ALL jobs in the transaction to finalize, so it is only necessary to
1355 instruct a single member job to finalize.
1356
1357 Arguments:
1358
1359 "id: string"
1360 The identifier of any job in the transaction, or of a job that is
1361 not part of any transaction.
1362
1363 Since: 3.0
1364
1365 JobInfo (Object)
1366
1367 Information about a job.
1368
1369 Members:
1370
1371 "id: string"
1372 The job identifier
1373
1374 "type: JobType"
1375 The kind of job that is being performed
1376
1377 "status: JobStatus"
1378 Current job state/status
1379
1380 "current-progress: int"
1381 Progress made until now. The unit is arbitrary and the value can
1382 only meaningfully be used for the ratio of "current-progress" to
1383 "total-progress". The value is monotonically increasing.
1384
1385 "total-progress: int"
1386 Estimated "current-progress" value at the completion of the job.
1387 This value can arbitrarily change while the job is running, in both
1388 directions.
1389
1390 "error: string" (optional)
1391 If this field is present, the job failed; if it is still missing in
1392 the CONCLUDED state, this indicates successful completion.
1393
1394 The value is a human-readable error message to describe the reason
1395 for the job failure. It should not be parsed by applications.
1396
1397 Since: 3.0
1398
1399 query-jobs (Command) Return information about jobs.
1400
1401 Returns: a list with a "JobInfo" for each active job
1402
1403 Since: 3.0
1404
1405 SnapshotInfo (Object)
1406
1407 Members:
1408
1409 "id: string"
1410 unique snapshot id
1411
1412 "name: string"
1413 user chosen name
1414
1415 "vm-state-size: int"
1416 size of the VM state
1417
1418 "date-sec: int"
1419 UTC date of the snapshot in seconds
1420
1421 "date-nsec: int"
1422 fractional part in nano seconds to be used with date-sec
1423
1424 "vm-clock-sec: int"
1425 VM clock relative to boot in seconds
1426
1427 "vm-clock-nsec: int"
1428 fractional part in nano seconds to be used with vm-clock-sec
1429
1430 Since: 1.3
1431
1432 ImageInfoSpecificQCow2EncryptionBase (Object)
1433
1434 Members:
1435
1436 "format: BlockdevQcow2EncryptionFormat"
1437 The encryption format
1438
1439 Since: 2.10
1440
1441 ImageInfoSpecificQCow2Encryption (Object)
1442
1443 Members:
1444
1445 The members of "ImageInfoSpecificQCow2EncryptionBase"
1446 The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1447
1448 Since: 2.10
1449
1450 ImageInfoSpecificQCow2 (Object)
1451
1452 Members:
1453
1454 "compat: string"
1455 compatibility level
1456
1457 "data-file: string" (optional)
1458 the filename of the external data file that is stored in the image
1459 and used as a default for opening the image (since: 4.0)
1460
1461 "data-file-raw: boolean" (optional)
1462 True if the external data file must stay valid as a standalone
1463 (read-only) raw image without looking at qcow2 metadata (since:
1464 4.0)
1465
1466 "lazy-refcounts: boolean" (optional)
1467 on or off; only valid for compat >= 1.1
1468
1469 "corrupt: boolean" (optional)
1470 true if the image has been marked corrupt; only valid for compat >=
1471 1.1 (since 2.2)
1472
1473 "refcount-bits: int"
1474 width of a refcount entry in bits (since 2.3)
1475
1476 "encrypt: ImageInfoSpecificQCow2Encryption" (optional)
1477 details about encryption parameters; only set if image is encrypted
1478 (since 2.10)
1479
1480 "bitmaps: array of Qcow2BitmapInfo" (optional)
1481 A list of qcow2 bitmap details (since 4.0)
1482
1483 Since: 1.7
1484
1485 ImageInfoSpecificVmdk (Object)
1486
1487 Members:
1488
1489 "create-type: string"
1490 The create type of VMDK image
1491
1492 "cid: int"
1493 Content id of image
1494
1495 "parent-cid: int"
1496 Parent VMDK image's cid
1497
1498 "extents: array of ImageInfo"
1499 List of extent files
1500
1501 Since: 1.7
1502
1503 ImageInfoSpecific (Object)
1504
1505 A discriminated record of image format specific information structures.
1506
1507 Members:
1508
1509 "type"
1510 One of "qcow2", "vmdk", "luks"
1511
1512 "data: ImageInfoSpecificQCow2" when "type" is "qcow2"
1513 "data: ImageInfoSpecificVmdk" when "type" is "vmdk"
1514 "data: QCryptoBlockInfoLUKS" when "type" is "luks"
1515
1516 Since: 1.7
1517
1518 ImageInfo (Object)
1519
1520 Information about a QEMU image file
1521
1522 Members:
1523
1524 "filename: string"
1525 name of the image file
1526
1527 "format: string"
1528 format of the image file
1529
1530 "virtual-size: int"
1531 maximum capacity in bytes of the image
1532
1533 "actual-size: int" (optional)
1534 actual size on disk in bytes of the image
1535
1536 "dirty-flag: boolean" (optional)
1537 true if image is not cleanly closed
1538
1539 "cluster-size: int" (optional)
1540 size of a cluster in bytes
1541
1542 "encrypted: boolean" (optional)
1543 true if the image is encrypted
1544
1545 "compressed: boolean" (optional)
1546 true if the image is compressed (Since 1.7)
1547
1548 "backing-filename: string" (optional)
1549 name of the backing file
1550
1551 "full-backing-filename: string" (optional)
1552 full path of the backing file
1553
1554 "backing-filename-format: string" (optional)
1555 the format of the backing file
1556
1557 "snapshots: array of SnapshotInfo" (optional)
1558 list of VM snapshots
1559
1560 "backing-image: ImageInfo" (optional)
1561 info of the backing image (since 1.6)
1562
1563 "format-specific: ImageInfoSpecific" (optional)
1564 structure supplying additional format-specific information (since
1565 1.7)
1566
1567 Since: 1.3
1568
1569 ImageCheck (Object)
1570
1571 Information about a QEMU image file check
1572
1573 Members:
1574
1575 "filename: string"
1576 name of the image file checked
1577
1578 "format: string"
1579 format of the image file checked
1580
1581 "check-errors: int"
1582 number of unexpected errors occurred during check
1583
1584 "image-end-offset: int" (optional)
1585 offset (in bytes) where the image ends, this field is present if
1586 the driver for the image format supports it
1587
1588 "corruptions: int" (optional)
1589 number of corruptions found during the check if any
1590
1591 "leaks: int" (optional)
1592 number of leaks found during the check if any
1593
1594 "corruptions-fixed: int" (optional)
1595 number of corruptions fixed during the check if any
1596
1597 "leaks-fixed: int" (optional)
1598 number of leaks fixed during the check if any
1599
1600 "total-clusters: int" (optional)
1601 total number of clusters, this field is present if the driver for
1602 the image format supports it
1603
1604 "allocated-clusters: int" (optional)
1605 total number of allocated clusters, this field is present if the
1606 driver for the image format supports it
1607
1608 "fragmented-clusters: int" (optional)
1609 total number of fragmented clusters, this field is present if the
1610 driver for the image format supports it
1611
1612 "compressed-clusters: int" (optional)
1613 total number of compressed clusters, this field is present if the
1614 driver for the image format supports it
1615
1616 Since: 1.4
1617
1618 MapEntry (Object)
1619
1620 Mapping information from a virtual block range to a host file range
1621
1622 Members:
1623
1624 "start: int"
1625 the start byte of the mapped virtual range
1626
1627 "length: int"
1628 the number of bytes of the mapped virtual range
1629
1630 "data: boolean"
1631 whether the mapped range has data
1632
1633 "zero: boolean"
1634 whether the virtual blocks are zeroed
1635
1636 "depth: int"
1637 the depth of the mapping
1638
1639 "offset: int" (optional)
1640 the offset in file that the virtual sectors are mapped to
1641
1642 "filename: string" (optional)
1643 filename that is referred to by "offset"
1644
1645 Since: 2.6
1646
1647 BlockdevCacheInfo (Object)
1648
1649 Cache mode information for a block device
1650
1651 Members:
1652
1653 "writeback: boolean"
1654 true if writeback mode is enabled
1655
1656 "direct: boolean"
1657 true if the host page cache is bypassed (O_DIRECT)
1658
1659 "no-flush: boolean"
1660 true if flush requests are ignored for the device
1661
1662 Since: 2.3
1663
1664 BlockDeviceInfo (Object)
1665
1666 Information about the backing device for a block device.
1667
1668 Members:
1669
1670 "file: string"
1671 the filename of the backing device
1672
1673 "node-name: string" (optional)
1674 the name of the block driver node (Since 2.0)
1675
1676 "ro: boolean"
1677 true if the backing device was open read-only
1678
1679 "drv: string"
1680 the name of the block format used to open the backing device. As of
1681 0.14.0 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
1682 'file', 'file', 'ftp', 'ftps', 'host_cdrom', 'host_device', 'http',
1683 'https', 'luks', 'nbd', 'parallels', 'qcow', 'qcow2', 'raw', 'vdi',
1684 'vmdk', 'vpc', 'vvfat' 2.2: 'archipelago' added, 'cow' dropped 2.3:
1685 'host_floppy' deprecated 2.5: 'host_floppy' dropped 2.6: 'luks'
1686 added 2.8: 'replication' added, 'tftp' dropped 2.9: 'archipelago'
1687 dropped
1688
1689 "backing_file: string" (optional)
1690 the name of the backing file (for copy-on-write)
1691
1692 "backing_file_depth: int"
1693 number of files in the backing file chain (since: 1.2)
1694
1695 "encrypted: boolean"
1696 true if the backing device is encrypted
1697
1698 "encryption_key_missing: boolean"
1699 Deprecated; always false
1700
1701 "detect_zeroes: BlockdevDetectZeroesOptions"
1702 detect and optimize zero writes (Since 2.1)
1703
1704 "bps: int"
1705 total throughput limit in bytes per second is specified
1706
1707 "bps_rd: int"
1708 read throughput limit in bytes per second is specified
1709
1710 "bps_wr: int"
1711 write throughput limit in bytes per second is specified
1712
1713 "iops: int"
1714 total I/O operations per second is specified
1715
1716 "iops_rd: int"
1717 read I/O operations per second is specified
1718
1719 "iops_wr: int"
1720 write I/O operations per second is specified
1721
1722 "image: ImageInfo"
1723 the info of image used (since: 1.6)
1724
1725 "bps_max: int" (optional)
1726 total throughput limit during bursts, in bytes (Since 1.7)
1727
1728 "bps_rd_max: int" (optional)
1729 read throughput limit during bursts, in bytes (Since 1.7)
1730
1731 "bps_wr_max: int" (optional)
1732 write throughput limit during bursts, in bytes (Since 1.7)
1733
1734 "iops_max: int" (optional)
1735 total I/O operations per second during bursts, in bytes (Since 1.7)
1736
1737 "iops_rd_max: int" (optional)
1738 read I/O operations per second during bursts, in bytes (Since 1.7)
1739
1740 "iops_wr_max: int" (optional)
1741 write I/O operations per second during bursts, in bytes (Since 1.7)
1742
1743 "bps_max_length: int" (optional)
1744 maximum length of the "bps_max" burst period, in seconds. (Since
1745 2.6)
1746
1747 "bps_rd_max_length: int" (optional)
1748 maximum length of the "bps_rd_max" burst period, in seconds. (Since
1749 2.6)
1750
1751 "bps_wr_max_length: int" (optional)
1752 maximum length of the "bps_wr_max" burst period, in seconds. (Since
1753 2.6)
1754
1755 "iops_max_length: int" (optional)
1756 maximum length of the "iops" burst period, in seconds. (Since 2.6)
1757
1758 "iops_rd_max_length: int" (optional)
1759 maximum length of the "iops_rd_max" burst period, in seconds.
1760 (Since 2.6)
1761
1762 "iops_wr_max_length: int" (optional)
1763 maximum length of the "iops_wr_max" burst period, in seconds.
1764 (Since 2.6)
1765
1766 "iops_size: int" (optional)
1767 an I/O size in bytes (Since 1.7)
1768
1769 "group: string" (optional)
1770 throttle group name (Since 2.4)
1771
1772 "cache: BlockdevCacheInfo"
1773 the cache mode used for the block device (since: 2.3)
1774
1775 "write_threshold: int"
1776 configured write threshold for the device. 0 if disabled. (Since
1777 2.3)
1778
1779 "dirty-bitmaps: array of BlockDirtyInfo" (optional)
1780 dirty bitmaps information (only present if node has one or more
1781 dirty bitmaps) (Since 4.2)
1782
1783 Since: 0.14.0
1784
1785 BlockDeviceIoStatus (Enum)
1786
1787 An enumeration of block device I/O status.
1788
1789 Values:
1790
1791 "ok"
1792 The last I/O operation has succeeded
1793
1794 "failed"
1795 The last I/O operation has failed
1796
1797 "nospace"
1798 The last I/O operation has failed due to a no-space condition
1799
1800 Since: 1.0
1801
1802 BlockDeviceMapEntry (Object)
1803
1804 Entry in the metadata map of the device (returned by "qemu-img map")
1805
1806 Members:
1807
1808 "start: int"
1809 Offset in the image of the first byte described by this entry (in
1810 bytes)
1811
1812 "length: int"
1813 Length of the range described by this entry (in bytes)
1814
1815 "depth: int"
1816 Number of layers (0 = top image, 1 = top image's backing file,
1817 etc.) before reaching one for which the range is allocated. The
1818 value is in the range 0 to the depth of the image chain - 1.
1819
1820 "zero: boolean"
1821 the sectors in this range read as zeros
1822
1823 "data: boolean"
1824 reading the image will actually read data from a file (in
1825 particular, if "offset" is present this means that the sectors are
1826 not simply preallocated, but contain actual data in raw format)
1827
1828 "offset: int" (optional)
1829 if present, the image file stores the data for this range in raw
1830 format at the given offset.
1831
1832 Since: 1.7
1833
1834 DirtyBitmapStatus (Enum)
1835
1836 An enumeration of possible states that a dirty bitmap can report to the
1837 user.
1838
1839 Values:
1840
1841 "frozen"
1842 The bitmap is currently in-use by some operation and is immutable.
1843 If the bitmap was "active" prior to the operation, new writes by
1844 the guest are being recorded in a temporary buffer, and will not be
1845 lost. Generally, bitmaps are cleared on successful use in an
1846 operation and the temporary buffer is committed into the bitmap. On
1847 failure, the temporary buffer is merged back into the bitmap
1848 without first clearing it. Please refer to the documentation for
1849 each bitmap-using operation, See also "blockdev-backup",
1850 "drive-backup".
1851
1852 "disabled"
1853 The bitmap is not currently recording new writes by the guest.
1854 This is requested explicitly via "block-dirty-bitmap-disable". It
1855 can still be cleared, deleted, or used for backup operations.
1856
1857 "active"
1858 The bitmap is actively monitoring for new writes, and can be
1859 cleared, deleted, or used for backup operations.
1860
1861 "locked"
1862 The bitmap is currently in-use by some operation and is immutable.
1863 If the bitmap was "active" prior to the operation, it is still
1864 recording new writes. If the bitmap was "disabled", it is not
1865 recording new writes. (Since 2.12)
1866
1867 "inconsistent"
1868 This is a persistent dirty bitmap that was marked in-use on disk,
1869 and is unusable by QEMU. It can only be deleted. Please rely on
1870 the inconsistent field in "BlockDirtyInfo" instead, as the status
1871 field is deprecated. (Since 4.0)
1872
1873 Since: 2.4
1874
1875 BlockDirtyInfo (Object)
1876
1877 Block dirty bitmap information.
1878
1879 Members:
1880
1881 "name: string" (optional)
1882 the name of the dirty bitmap (Since 2.4)
1883
1884 "count: int"
1885 number of dirty bytes according to the dirty bitmap
1886
1887 "granularity: int"
1888 granularity of the dirty bitmap in bytes (since 1.4)
1889
1890 "status: DirtyBitmapStatus"
1891 Deprecated in favor of "recording" and "locked". (since 2.4)
1892
1893 "recording: boolean"
1894 true if the bitmap is recording new writes from the guest.
1895 Replaces `active` and `disabled` statuses. (since 4.0)
1896
1897 "busy: boolean"
1898 true if the bitmap is in-use by some operation (NBD or jobs) and
1899 cannot be modified via QMP or used by another operation. Replaces
1900 `locked` and `frozen` statuses. (since 4.0)
1901
1902 "persistent: boolean"
1903 true if the bitmap was stored on disk, is scheduled to be stored on
1904 disk, or both. (since 4.0)
1905
1906 "inconsistent: boolean" (optional)
1907 true if this is a persistent bitmap that was improperly stored.
1908 Implies "persistent" to be true; "recording" and "busy" to be
1909 false. This bitmap cannot be used. To remove it, use
1910 "block-dirty-bitmap-remove". (Since 4.0)
1911
1912 Since: 1.3
1913
1914 Qcow2BitmapInfoFlags (Enum)
1915
1916 An enumeration of flags that a bitmap can report to the user.
1917
1918 Values:
1919
1920 "in-use"
1921 This flag is set by any process actively modifying the qcow2 file,
1922 and cleared when the updated bitmap is flushed to the qcow2 image.
1923 The presence of this flag in an offline image means that the bitmap
1924 was not saved correctly after its last usage, and may contain
1925 inconsistent data.
1926
1927 "auto"
1928 The bitmap must reflect all changes of the virtual disk by any
1929 application that would write to this qcow2 file.
1930
1931 Since: 4.0
1932
1933 Qcow2BitmapInfo (Object)
1934
1935 Qcow2 bitmap information.
1936
1937 Members:
1938
1939 "name: string"
1940 the name of the bitmap
1941
1942 "granularity: int"
1943 granularity of the bitmap in bytes
1944
1945 "flags: array of Qcow2BitmapInfoFlags"
1946 flags of the bitmap
1947
1948 Since: 4.0
1949
1950 BlockLatencyHistogramInfo (Object)
1951
1952 Block latency histogram.
1953
1954 Members:
1955
1956 "boundaries: array of int"
1957 list of interval boundary values in nanoseconds, all greater than
1958 zero and in ascending order. For example, the list [10, 50, 100]
1959 produces the following histogram intervals: [0, 10), [10, 50), [50,
1960 100), [100, +inf).
1961
1962 "bins: array of int"
1963 list of io request counts corresponding to histogram intervals.
1964 len("bins") = len("boundaries") + 1 For the example above, "bins"
1965 may be something like [3, 1, 5, 2], and corresponding histogram
1966 looks like:
1967
1968 5| * 4| * 3| 2| * 1|
1969 +------------------ 10 50 100
1970
1971 Since: 4.0
1972
1973 block-latency-histogram-set (Command) Manage read, write and flush
1974 latency histograms for the device.
1975
1976 If only "id" parameter is specified, remove all present latency
1977 histograms for the device. Otherwise, add/reset some of (or all)
1978 latency histograms.
1979
1980 Arguments:
1981
1982 "id: string"
1983 The name or QOM path of the guest device.
1984
1985 "boundaries: array of int" (optional)
1986 list of interval boundary values (see description in
1987 BlockLatencyHistogramInfo definition). If specified, all latency
1988 histograms are removed, and empty ones created for all io types
1989 with intervals corresponding to "boundaries" (except for io types,
1990 for which specific boundaries are set through the following
1991 parameters).
1992
1993 "boundaries-read: array of int" (optional)
1994 list of interval boundary values for read latency histogram. If
1995 specified, old read latency histogram is removed, and empty one
1996 created with intervals corresponding to "boundaries-read". The
1997 parameter has higher priority then "boundaries".
1998
1999 "boundaries-write: array of int" (optional)
2000 list of interval boundary values for write latency histogram.
2001
2002 "boundaries-flush: array of int" (optional)
2003 list of interval boundary values for flush latency histogram.
2004
2005 Returns: error if device is not found or any boundary arrays are
2006 invalid.
2007
2008 Since: 4.0
2009
2010 Example:
2011
2012 set new histograms for all io types with intervals
2013 [0, 10), [10, 50), [50, 100), [100, +inf):
2014
2015 -> { "execute": "block-latency-histogram-set",
2016 "arguments": { "id": "drive0",
2017 "boundaries": [10, 50, 100] } }
2018 <- { "return": {} }
2019
2020 Example:
2021
2022 set new histogram only for write, other histograms will remain
2023 not changed (or not created):
2024
2025 -> { "execute": "block-latency-histogram-set",
2026 "arguments": { "id": "drive0",
2027 "boundaries-write": [10, 50, 100] } }
2028 <- { "return": {} }
2029
2030 Example:
2031
2032 set new histograms with the following intervals:
2033 read, flush: [0, 10), [10, 50), [50, 100), [100, +inf)
2034 write: [0, 1000), [1000, 5000), [5000, +inf)
2035
2036 -> { "execute": "block-latency-histogram-set",
2037 "arguments": { "id": "drive0",
2038 "boundaries": [10, 50, 100],
2039 "boundaries-write": [1000, 5000] } }
2040 <- { "return": {} }
2041
2042 Example:
2043
2044 remove all latency histograms:
2045
2046 -> { "execute": "block-latency-histogram-set",
2047 "arguments": { "id": "drive0" } }
2048 <- { "return": {} }
2049
2050 BlockInfo (Object)
2051
2052 Block device information. This structure describes a virtual device
2053 and the backing device associated with it.
2054
2055 Members:
2056
2057 "device: string"
2058 The device name associated with the virtual device.
2059
2060 "qdev: string" (optional)
2061 The qdev ID, or if no ID is assigned, the QOM path of the block
2062 device. (since 2.10)
2063
2064 "type: string"
2065 This field is returned only for compatibility reasons, it should
2066 not be used (always returns 'unknown')
2067
2068 "removable: boolean"
2069 True if the device supports removable media.
2070
2071 "locked: boolean"
2072 True if the guest has locked this device from having its media
2073 removed
2074
2075 "tray_open: boolean" (optional)
2076 True if the device's tray is open (only present if it has a tray)
2077
2078 "dirty-bitmaps: array of BlockDirtyInfo" (optional)
2079 dirty bitmaps information (only present if the driver has one or
2080 more dirty bitmaps) (Since 2.0) Deprecated in 4.2; see
2081 BlockDeviceInfo instead.
2082
2083 "io-status: BlockDeviceIoStatus" (optional)
2084 "BlockDeviceIoStatus". Only present if the device supports it and
2085 the VM is configured to stop on errors (supported device models:
2086 virtio-blk, IDE, SCSI except scsi-generic)
2087
2088 "inserted: BlockDeviceInfo" (optional)
2089 "BlockDeviceInfo" describing the device if media is present
2090
2091 Since: 0.14.0
2092
2093 BlockMeasureInfo (Object)
2094
2095 Image file size calculation information. This structure describes the
2096 size requirements for creating a new image file.
2097
2098 The size requirements depend on the new image file format. File size
2099 always equals virtual disk size for the 'raw' format, even for sparse
2100 POSIX files. Compact formats such as 'qcow2' represent unallocated and
2101 zero regions efficiently so file size may be smaller than virtual disk
2102 size.
2103
2104 The values are upper bounds that are guaranteed to fit the new image
2105 file. Subsequent modification, such as internal snapshot or bitmap
2106 creation, may require additional space and is not covered here.
2107
2108 Members:
2109
2110 "required: int"
2111 Size required for a new image file, in bytes.
2112
2113 "fully-allocated: int"
2114 Image file size, in bytes, once data has been written to all
2115 sectors.
2116
2117 Since: 2.10
2118
2119 query-block (Command) Get a list of BlockInfo for all virtual block
2120 devices.
2121
2122 Returns: a list of "BlockInfo" describing each virtual block device.
2123 Filter nodes that were created implicitly are skipped over.
2124
2125 Since: 0.14.0
2126
2127 Example:
2128
2129 -> { "execute": "query-block" }
2130 <- {
2131 "return":[
2132 {
2133 "io-status": "ok",
2134 "device":"ide0-hd0",
2135 "locked":false,
2136 "removable":false,
2137 "inserted":{
2138 "ro":false,
2139 "drv":"qcow2",
2140 "encrypted":false,
2141 "file":"disks/test.qcow2",
2142 "backing_file_depth":1,
2143 "bps":1000000,
2144 "bps_rd":0,
2145 "bps_wr":0,
2146 "iops":1000000,
2147 "iops_rd":0,
2148 "iops_wr":0,
2149 "bps_max": 8000000,
2150 "bps_rd_max": 0,
2151 "bps_wr_max": 0,
2152 "iops_max": 0,
2153 "iops_rd_max": 0,
2154 "iops_wr_max": 0,
2155 "iops_size": 0,
2156 "detect_zeroes": "on",
2157 "write_threshold": 0,
2158 "image":{
2159 "filename":"disks/test.qcow2",
2160 "format":"qcow2",
2161 "virtual-size":2048000,
2162 "backing_file":"base.qcow2",
2163 "full-backing-filename":"disks/base.qcow2",
2164 "backing-filename-format":"qcow2",
2165 "snapshots":[
2166 {
2167 "id": "1",
2168 "name": "snapshot1",
2169 "vm-state-size": 0,
2170 "date-sec": 10000200,
2171 "date-nsec": 12,
2172 "vm-clock-sec": 206,
2173 "vm-clock-nsec": 30
2174 }
2175 ],
2176 "backing-image":{
2177 "filename":"disks/base.qcow2",
2178 "format":"qcow2",
2179 "virtual-size":2048000
2180 }
2181 }
2182 },
2183 "qdev": "ide_disk",
2184 "type":"unknown"
2185 },
2186 {
2187 "io-status": "ok",
2188 "device":"ide1-cd0",
2189 "locked":false,
2190 "removable":true,
2191 "qdev": "/machine/unattached/device[23]",
2192 "tray_open": false,
2193 "type":"unknown"
2194 },
2195 {
2196 "device":"floppy0",
2197 "locked":false,
2198 "removable":true,
2199 "qdev": "/machine/unattached/device[20]",
2200 "type":"unknown"
2201 },
2202 {
2203 "device":"sd0",
2204 "locked":false,
2205 "removable":true,
2206 "type":"unknown"
2207 }
2208 ]
2209 }
2210
2211 BlockDeviceTimedStats (Object)
2212
2213 Statistics of a block device during a given interval of time.
2214
2215 Members:
2216
2217 "interval_length: int"
2218 Interval used for calculating the statistics, in seconds.
2219
2220 "min_rd_latency_ns: int"
2221 Minimum latency of read operations in the defined interval, in
2222 nanoseconds.
2223
2224 "min_wr_latency_ns: int"
2225 Minimum latency of write operations in the defined interval, in
2226 nanoseconds.
2227
2228 "min_flush_latency_ns: int"
2229 Minimum latency of flush operations in the defined interval, in
2230 nanoseconds.
2231
2232 "max_rd_latency_ns: int"
2233 Maximum latency of read operations in the defined interval, in
2234 nanoseconds.
2235
2236 "max_wr_latency_ns: int"
2237 Maximum latency of write operations in the defined interval, in
2238 nanoseconds.
2239
2240 "max_flush_latency_ns: int"
2241 Maximum latency of flush operations in the defined interval, in
2242 nanoseconds.
2243
2244 "avg_rd_latency_ns: int"
2245 Average latency of read operations in the defined interval, in
2246 nanoseconds.
2247
2248 "avg_wr_latency_ns: int"
2249 Average latency of write operations in the defined interval, in
2250 nanoseconds.
2251
2252 "avg_flush_latency_ns: int"
2253 Average latency of flush operations in the defined interval, in
2254 nanoseconds.
2255
2256 "avg_rd_queue_depth: number"
2257 Average number of pending read operations in the defined interval.
2258
2259 "avg_wr_queue_depth: number"
2260 Average number of pending write operations in the defined interval.
2261
2262 Since: 2.5
2263
2264 BlockDeviceStats (Object)
2265
2266 Statistics of a virtual block device or a block backing device.
2267
2268 Members:
2269
2270 "rd_bytes: int"
2271 The number of bytes read by the device.
2272
2273 "wr_bytes: int"
2274 The number of bytes written by the device.
2275
2276 "unmap_bytes: int"
2277 The number of bytes unmapped by the device (Since 4.2)
2278
2279 "rd_operations: int"
2280 The number of read operations performed by the device.
2281
2282 "wr_operations: int"
2283 The number of write operations performed by the device.
2284
2285 "flush_operations: int"
2286 The number of cache flush operations performed by the device (since
2287 0.15.0)
2288
2289 "unmap_operations: int"
2290 The number of unmap operations performed by the device (Since 4.2)
2291
2292 "rd_total_time_ns: int"
2293 Total time spent on reads in nanoseconds (since 0.15.0).
2294
2295 "wr_total_time_ns: int"
2296 Total time spent on writes in nanoseconds (since 0.15.0).
2297
2298 "flush_total_time_ns: int"
2299 Total time spent on cache flushes in nanoseconds (since 0.15.0).
2300
2301 "unmap_total_time_ns: int"
2302 Total time spent on unmap operations in nanoseconds (Since 4.2)
2303
2304 "wr_highest_offset: int"
2305 The offset after the greatest byte written to the device. The
2306 intended use of this information is for growable sparse files (like
2307 qcow2) that are used on top of a physical device.
2308
2309 "rd_merged: int"
2310 Number of read requests that have been merged into another request
2311 (Since 2.3).
2312
2313 "wr_merged: int"
2314 Number of write requests that have been merged into another request
2315 (Since 2.3).
2316
2317 "unmap_merged: int"
2318 Number of unmap requests that have been merged into another request
2319 (Since 4.2)
2320
2321 "idle_time_ns: int" (optional)
2322 Time since the last I/O operation, in nanoseconds. If the field is
2323 absent it means that there haven't been any operations yet (Since
2324 2.5).
2325
2326 "failed_rd_operations: int"
2327 The number of failed read operations performed by the device (Since
2328 2.5)
2329
2330 "failed_wr_operations: int"
2331 The number of failed write operations performed by the device
2332 (Since 2.5)
2333
2334 "failed_flush_operations: int"
2335 The number of failed flush operations performed by the device
2336 (Since 2.5)
2337
2338 "failed_unmap_operations: int"
2339 The number of failed unmap operations performed by the device
2340 (Since 4.2)
2341
2342 "invalid_rd_operations: int"
2343 The number of invalid read operations performed by the device
2344 (Since 2.5)
2345
2346 "invalid_wr_operations: int"
2347 The number of invalid write operations performed by the device
2348 (Since 2.5)
2349
2350 "invalid_flush_operations: int"
2351 The number of invalid flush operations performed by the device
2352 (Since 2.5)
2353
2354 "invalid_unmap_operations: int"
2355 The number of invalid unmap operations performed by the device
2356 (Since 4.2)
2357
2358 "account_invalid: boolean"
2359 Whether invalid operations are included in the last access
2360 statistics (Since 2.5)
2361
2362 "account_failed: boolean"
2363 Whether failed operations are included in the latency and last
2364 access statistics (Since 2.5)
2365
2366 "timed_stats: array of BlockDeviceTimedStats"
2367 Statistics specific to the set of previously defined intervals of
2368 time (Since 2.5)
2369
2370 "rd_latency_histogram: BlockLatencyHistogramInfo" (optional)
2371 "BlockLatencyHistogramInfo". (Since 4.0)
2372
2373 "wr_latency_histogram: BlockLatencyHistogramInfo" (optional)
2374 "BlockLatencyHistogramInfo". (Since 4.0)
2375
2376 "flush_latency_histogram: BlockLatencyHistogramInfo" (optional)
2377 "BlockLatencyHistogramInfo". (Since 4.0)
2378
2379 Since: 0.14.0
2380
2381 BlockStatsSpecificFile (Object)
2382
2383 File driver statistics
2384
2385 Members:
2386
2387 "discard-nb-ok: int"
2388 The number of successful discard operations performed by the
2389 driver.
2390
2391 "discard-nb-failed: int"
2392 The number of failed discard operations performed by the driver.
2393
2394 "discard-bytes-ok: int"
2395 The number of bytes discarded by the driver.
2396
2397 Since: 4.2
2398
2399 BlockStatsSpecific (Object)
2400
2401 Block driver specific statistics
2402
2403 Members:
2404
2405 "driver: BlockdevDriver"
2406 Not documented
2407
2408 The members of "BlockStatsSpecificFile" when "driver" is "file"
2409 The members of "BlockStatsSpecificFile" when "driver" is "host_device"
2410
2411 Since: 4.2
2412
2413 BlockStats (Object)
2414
2415 Statistics of a virtual block device or a block backing device.
2416
2417 Members:
2418
2419 "device: string" (optional)
2420 If the stats are for a virtual block device, the name corresponding
2421 to the virtual block device.
2422
2423 "node-name: string" (optional)
2424 The node name of the device. (Since 2.3)
2425
2426 "qdev: string" (optional)
2427 The qdev ID, or if no ID is assigned, the QOM path of the block
2428 device. (since 3.0)
2429
2430 "stats: BlockDeviceStats"
2431 A "BlockDeviceStats" for the device.
2432
2433 "driver-specific: BlockStatsSpecific" (optional)
2434 Optional driver-specific stats. (Since 4.2)
2435
2436 "parent: BlockStats" (optional)
2437 This describes the file block device if it has one. Contains
2438 recursively the statistics of the underlying protocol (e.g. the
2439 host file for a qcow2 image). If there is no underlying protocol,
2440 this field is omitted
2441
2442 "backing: BlockStats" (optional)
2443 This describes the backing block device if it has one. (Since 2.0)
2444
2445 Since: 0.14.0
2446
2447 query-blockstats (Command) Query the "BlockStats" for all virtual
2448 block devices.
2449
2450 Arguments:
2451
2452 "query-nodes: boolean" (optional)
2453 If true, the command will query all the block nodes that have a
2454 node name, in a list which will include "parent" information, but
2455 not "backing". If false or omitted, the behavior is as before -
2456 query all the device backends, recursively including their "parent"
2457 and "backing". Filter nodes that were created implicitly are
2458 skipped over in this mode. (Since 2.3)
2459
2460 Returns: A list of "BlockStats" for each virtual block devices.
2461
2462 Since: 0.14.0
2463
2464 Example:
2465
2466 -> { "execute": "query-blockstats" }
2467 <- {
2468 "return":[
2469 {
2470 "device":"ide0-hd0",
2471 "parent":{
2472 "stats":{
2473 "wr_highest_offset":3686448128,
2474 "wr_bytes":9786368,
2475 "wr_operations":751,
2476 "rd_bytes":122567168,
2477 "rd_operations":36772
2478 "wr_total_times_ns":313253456
2479 "rd_total_times_ns":3465673657
2480 "flush_total_times_ns":49653
2481 "flush_operations":61,
2482 "rd_merged":0,
2483 "wr_merged":0,
2484 "idle_time_ns":2953431879,
2485 "account_invalid":true,
2486 "account_failed":false
2487 }
2488 },
2489 "stats":{
2490 "wr_highest_offset":2821110784,
2491 "wr_bytes":9786368,
2492 "wr_operations":692,
2493 "rd_bytes":122739200,
2494 "rd_operations":36604
2495 "flush_operations":51,
2496 "wr_total_times_ns":313253456
2497 "rd_total_times_ns":3465673657
2498 "flush_total_times_ns":49653,
2499 "rd_merged":0,
2500 "wr_merged":0,
2501 "idle_time_ns":2953431879,
2502 "account_invalid":true,
2503 "account_failed":false
2504 },
2505 "qdev": "/machine/unattached/device[23]"
2506 },
2507 {
2508 "device":"ide1-cd0",
2509 "stats":{
2510 "wr_highest_offset":0,
2511 "wr_bytes":0,
2512 "wr_operations":0,
2513 "rd_bytes":0,
2514 "rd_operations":0
2515 "flush_operations":0,
2516 "wr_total_times_ns":0
2517 "rd_total_times_ns":0
2518 "flush_total_times_ns":0,
2519 "rd_merged":0,
2520 "wr_merged":0,
2521 "account_invalid":false,
2522 "account_failed":false
2523 },
2524 "qdev": "/machine/unattached/device[24]"
2525 },
2526 {
2527 "device":"floppy0",
2528 "stats":{
2529 "wr_highest_offset":0,
2530 "wr_bytes":0,
2531 "wr_operations":0,
2532 "rd_bytes":0,
2533 "rd_operations":0
2534 "flush_operations":0,
2535 "wr_total_times_ns":0
2536 "rd_total_times_ns":0
2537 "flush_total_times_ns":0,
2538 "rd_merged":0,
2539 "wr_merged":0,
2540 "account_invalid":false,
2541 "account_failed":false
2542 },
2543 "qdev": "/machine/unattached/device[16]"
2544 },
2545 {
2546 "device":"sd0",
2547 "stats":{
2548 "wr_highest_offset":0,
2549 "wr_bytes":0,
2550 "wr_operations":0,
2551 "rd_bytes":0,
2552 "rd_operations":0
2553 "flush_operations":0,
2554 "wr_total_times_ns":0
2555 "rd_total_times_ns":0
2556 "flush_total_times_ns":0,
2557 "rd_merged":0,
2558 "wr_merged":0,
2559 "account_invalid":false,
2560 "account_failed":false
2561 }
2562 }
2563 ]
2564 }
2565
2566 BlockdevOnError (Enum)
2567
2568 An enumeration of possible behaviors for errors on I/O operations. The
2569 exact meaning depends on whether the I/O was initiated by a guest or by
2570 a block job
2571
2572 Values:
2573
2574 "report"
2575 for guest operations, report the error to the guest; for jobs,
2576 cancel the job
2577
2578 "ignore"
2579 ignore the error, only report a QMP event (BLOCK_IO_ERROR or
2580 BLOCK_JOB_ERROR)
2581
2582 "enospc"
2583 same as "stop" on ENOSPC, same as "report" otherwise.
2584
2585 "stop"
2586 for guest operations, stop the virtual machine; for jobs, pause the
2587 job
2588
2589 "auto"
2590 inherit the error handling policy of the backend (since: 2.7)
2591
2592 Since: 1.3
2593
2594 MirrorSyncMode (Enum)
2595
2596 An enumeration of possible behaviors for the initial synchronization
2597 phase of storage mirroring.
2598
2599 Values:
2600
2601 "top"
2602 copies data in the topmost image to the destination
2603
2604 "full"
2605 copies data from all images to the destination
2606
2607 "none"
2608 only copy data written from now on
2609
2610 "incremental"
2611 only copy data described by the dirty bitmap. (since: 2.4)
2612
2613 "bitmap"
2614 only copy data described by the dirty bitmap. (since: 4.2) Behavior
2615 on completion is determined by the BitmapSyncMode.
2616
2617 Since: 1.3
2618
2619 BitmapSyncMode (Enum)
2620
2621 An enumeration of possible behaviors for the synchronization of a
2622 bitmap when used for data copy operations.
2623
2624 Values:
2625
2626 "on-success"
2627 The bitmap is only synced when the operation is successful. This
2628 is the behavior always used for 'INCREMENTAL' backups.
2629
2630 "never"
2631 The bitmap is never synchronized with the operation, and is treated
2632 solely as a read-only manifest of blocks to copy.
2633
2634 "always"
2635 The bitmap is always synchronized with the operation, regardless of
2636 whether or not the operation was successful.
2637
2638 Since: 4.2
2639
2640 MirrorCopyMode (Enum)
2641
2642 An enumeration whose values tell the mirror block job when to trigger
2643 writes to the target.
2644
2645 Values:
2646
2647 "background"
2648 copy data in background only.
2649
2650 "write-blocking"
2651 when data is written to the source, write it (synchronously) to the
2652 target as well. In addition, data is copied in background just
2653 like in "background" mode.
2654
2655 Since: 3.0
2656
2657 BlockJobInfo (Object)
2658
2659 Information about a long-running block device operation.
2660
2661 Members:
2662
2663 "type: string"
2664 the job type ('stream' for image streaming)
2665
2666 "device: string"
2667 The job identifier. Originally the device name but other values are
2668 allowed since QEMU 2.7
2669
2670 "len: int"
2671 Estimated "offset" value at the completion of the job. This value
2672 can arbitrarily change while the job is running, in both
2673 directions.
2674
2675 "offset: int"
2676 Progress made until now. The unit is arbitrary and the value can
2677 only meaningfully be used for the ratio of "offset" to "len". The
2678 value is monotonically increasing.
2679
2680 "busy: boolean"
2681 false if the job is known to be in a quiescent state, with no
2682 pending I/O. Since 1.3.
2683
2684 "paused: boolean"
2685 whether the job is paused or, if "busy" is true, will pause itself
2686 as soon as possible. Since 1.3.
2687
2688 "speed: int"
2689 the rate limit, bytes per second
2690
2691 "io-status: BlockDeviceIoStatus"
2692 the status of the job (since 1.3)
2693
2694 "ready: boolean"
2695 true if the job may be completed (since 2.2)
2696
2697 "status: JobStatus"
2698 Current job state/status (since 2.12)
2699
2700 "auto-finalize: boolean"
2701 Job will finalize itself when PENDING, moving to the CONCLUDED
2702 state. (since 2.12)
2703
2704 "auto-dismiss: boolean"
2705 Job will dismiss itself when CONCLUDED, moving to the NULL state
2706 and disappearing from the query list. (since 2.12)
2707
2708 "error: string" (optional)
2709 Error information if the job did not complete successfully. Not
2710 set if the job completed successfully. (since 2.12.1)
2711
2712 Since: 1.1
2713
2714 query-block-jobs (Command) Return information about long-running block
2715 device operations.
2716
2717 Returns: a list of "BlockJobInfo" for each active block job
2718
2719 Since: 1.1
2720
2721 block_passwd (Command) This command sets the password of a block
2722 device that has not been open with a password and requires one.
2723
2724 This command is now obsolete and will always return an error since 2.10
2725
2726 Arguments:
2727
2728 "device: string" (optional)
2729 Not documented
2730
2731 "node-name: string" (optional)
2732 Not documented
2733
2734 "password: string"
2735 Not documented
2736
2737 block_resize (Command) Resize a block image while a guest is running.
2738
2739 Either "device" or "node-name" must be set but not both.
2740
2741 Arguments:
2742
2743 "device: string" (optional)
2744 the name of the device to get the image resized
2745
2746 "node-name: string" (optional)
2747 graph node name to get the image resized (Since 2.0)
2748
2749 "size: int"
2750 new image size in bytes
2751
2752 Returns: nothing on success If "device" is not a valid block device,
2753 DeviceNotFound
2754
2755 Since: 0.14.0
2756
2757 Example:
2758
2759 -> { "execute": "block_resize",
2760 "arguments": { "device": "scratch", "size": 1073741824 } }
2761 <- { "return": {} }
2762
2763 NewImageMode (Enum)
2764
2765 An enumeration that tells QEMU how to set the backing file path in a
2766 new image file.
2767
2768 Values:
2769
2770 "existing"
2771 QEMU should look for an existing image file.
2772
2773 "absolute-paths"
2774 QEMU should create a new image with absolute paths for the backing
2775 file. If there is no backing file available, the new image will not
2776 be backed either.
2777
2778 Since: 1.1
2779
2780 BlockdevSnapshotSync (Object)
2781
2782 Either "device" or "node-name" must be set but not both.
2783
2784 Members:
2785
2786 "device: string" (optional)
2787 the name of the device to take a snapshot of.
2788
2789 "node-name: string" (optional)
2790 graph node name to generate the snapshot from (Since 2.0)
2791
2792 "snapshot-file: string"
2793 the target of the new overlay image. If the file exists, or if it
2794 is a device, the overlay will be created in the existing
2795 file/device. Otherwise, a new file will be created.
2796
2797 "snapshot-node-name: string" (optional)
2798 the graph node name of the new image (Since 2.0)
2799
2800 "format: string" (optional)
2801 the format of the overlay image, default is 'qcow2'.
2802
2803 "mode: NewImageMode" (optional)
2804 whether and how QEMU should create a new image, default is
2805 'absolute-paths'.
2806
2807 BlockdevSnapshot (Object)
2808
2809 Members:
2810
2811 "node: string"
2812 device or node name that will have a snapshot taken.
2813
2814 "overlay: string"
2815 reference to the existing block device that will become the overlay
2816 of "node", as part of taking the snapshot. It must not have a
2817 current backing file (this can be achieved by passing "backing":
2818 null to blockdev-add).
2819
2820 Since: 2.5
2821
2822 BackupCommon (Object)
2823
2824 Members:
2825
2826 "job-id: string" (optional)
2827 identifier for the newly-created block job. If omitted, the device
2828 name will be used. (Since 2.7)
2829
2830 "device: string"
2831 the device name or node-name of a root node which should be copied.
2832
2833 "sync: MirrorSyncMode"
2834 what parts of the disk image should be copied to the destination
2835 (all the disk, only the sectors allocated in the topmost image,
2836 from a dirty bitmap, or only new I/O).
2837
2838 "speed: int" (optional)
2839 the maximum speed, in bytes per second. The default is 0, for
2840 unlimited.
2841
2842 "bitmap: string" (optional)
2843 The name of a dirty bitmap to use. Must be present if sync is
2844 "bitmap" or "incremental". Can be present if sync is "full" or
2845 "top". Must not be present otherwise. (Since 2.4 (drive-backup),
2846 3.1 (blockdev-backup))
2847
2848 "bitmap-mode: BitmapSyncMode" (optional)
2849 Specifies the type of data the bitmap should contain after the
2850 operation concludes. Must be present if a bitmap was provided,
2851 Must NOT be present otherwise. (Since 4.2)
2852
2853 "compress: boolean" (optional)
2854 true to compress data, if the target format supports it. (default:
2855 false) (since 2.8)
2856
2857 "on-source-error: BlockdevOnError" (optional)
2858 the action to take on an error on the source, default 'report'.
2859 'stop' and 'enospc' can only be used if the block device supports
2860 io-status (see BlockInfo).
2861
2862 "on-target-error: BlockdevOnError" (optional)
2863 the action to take on an error on the target, default 'report' (no
2864 limitations, since this applies to a different block device than
2865 "device").
2866
2867 "auto-finalize: boolean" (optional)
2868 When false, this job will wait in a PENDING state after it has
2869 finished its work, waiting for "block-job-finalize" before making
2870 any block graph changes. When true, this job will automatically
2871 perform its abort or commit actions. Defaults to true. (Since
2872 2.12)
2873
2874 "auto-dismiss: boolean" (optional)
2875 When false, this job will wait in a CONCLUDED state after it has
2876 completely ceased all work, and awaits "block-job-dismiss". When
2877 true, this job will automatically disappear from the query list
2878 without user intervention. Defaults to true. (Since 2.12)
2879
2880 "filter-node-name: string" (optional)
2881 the node name that should be assigned to the filter driver that the
2882 backup job inserts into the graph above node specified by "drive".
2883 If this option is not given, a node name is autogenerated. (Since:
2884 4.2)
2885
2886 Note: "on-source-error" and "on-target-error" only affect background
2887 I/O. If an error occurs during a guest write request, the device's
2888 rerror/werror actions will be used.
2889
2890 Since: 4.2
2891
2892 DriveBackup (Object)
2893
2894 Members:
2895
2896 "target: string"
2897 the target of the new image. If the file exists, or if it is a
2898 device, the existing file/device will be used as the new
2899 destination. If it does not exist, a new file will be created.
2900
2901 "format: string" (optional)
2902 the format of the new destination, default is to probe if "mode" is
2903 'existing', else the format of the source
2904
2905 "mode: NewImageMode" (optional)
2906 whether and how QEMU should create a new image, default is
2907 'absolute-paths'.
2908
2909 The members of "BackupCommon"
2910
2911 Since: 1.6
2912
2913 BlockdevBackup (Object)
2914
2915 Members:
2916
2917 "target: string"
2918 the device name or node-name of the backup target node.
2919
2920 The members of "BackupCommon"
2921
2922 Since: 2.3
2923
2924 blockdev-snapshot-sync (Command) Takes a synchronous snapshot of a
2925 block device.
2926
2927 For the arguments, see the documentation of BlockdevSnapshotSync.
2928
2929 Returns: nothing on success If "device" is not a valid block device,
2930 DeviceNotFound
2931
2932 Since: 0.14.0
2933
2934 Example:
2935
2936 -> { "execute": "blockdev-snapshot-sync",
2937 "arguments": { "device": "ide-hd0",
2938 "snapshot-file":
2939 "/some/place/my-image",
2940 "format": "qcow2" } }
2941 <- { "return": {} }
2942
2943 blockdev-snapshot (Command) Takes a snapshot of a block device.
2944
2945 Take a snapshot, by installing 'node' as the backing image of
2946 'overlay'. Additionally, if 'node' is associated with a block device,
2947 the block device changes to using 'overlay' as its new active image.
2948
2949 For the arguments, see the documentation of BlockdevSnapshot.
2950
2951 Since: 2.5
2952
2953 Example:
2954
2955 -> { "execute": "blockdev-add",
2956 "arguments": { "driver": "qcow2",
2957 "node-name": "node1534",
2958 "file": { "driver": "file",
2959 "filename": "hd1.qcow2" },
2960 "backing": null } }
2961
2962 <- { "return": {} }
2963
2964 -> { "execute": "blockdev-snapshot",
2965 "arguments": { "node": "ide-hd0",
2966 "overlay": "node1534" } }
2967 <- { "return": {} }
2968
2969 change-backing-file (Command) Change the backing file in the image
2970 file metadata. This does not cause QEMU to reopen the image file to
2971 reparse the backing filename (it may, however, perform a reopen to
2972 change permissions from r/o -> r/w -> r/o, if needed). The new backing
2973 file string is written into the image file metadata, and the QEMU
2974 internal strings are updated.
2975
2976 Arguments:
2977
2978 "image-node-name: string"
2979 The name of the block driver state node of the image to modify. The
2980 "device" argument is used to verify "image-node-name" is in the
2981 chain described by "device".
2982
2983 "device: string"
2984 The device name or node-name of the root node that owns image-node-
2985 name.
2986
2987 "backing-file: string"
2988 The string to write as the backing file. This string is not
2989 validated, so care should be taken when specifying the string or
2990 the image chain may not be able to be reopened again.
2991
2992 Returns: Nothing on success
2993
2994 If "device" does not exist or cannot be determined, DeviceNotFound
2995
2996 Since: 2.1
2997
2998 block-commit (Command) Live commit of data from overlay image nodes
2999 into backing nodes - i.e., writes data between 'top' and 'base' into
3000 'base'.
3001
3002 Arguments:
3003
3004 "job-id: string" (optional)
3005 identifier for the newly-created block job. If omitted, the device
3006 name will be used. (Since 2.7)
3007
3008 "device: string"
3009 the device name or node-name of a root node
3010
3011 "base-node: string" (optional)
3012 The node name of the backing image to write data into. If not
3013 specified, this is the deepest backing image. (since: 3.1)
3014
3015 "base: string" (optional)
3016 Same as "base-node", except that it is a file name rather than a
3017 node name. This must be the exact filename string that was used to
3018 open the node; other strings, even if addressing the same file, are
3019 not accepted (deprecated, use "base-node" instead)
3020
3021 "top-node: string" (optional)
3022 The node name of the backing image within the image chain which
3023 contains the topmost data to be committed down. If not specified,
3024 this is the active layer. (since: 3.1)
3025
3026 "top: string" (optional)
3027 Same as "top-node", except that it is a file name rather than a
3028 node name. This must be the exact filename string that was used to
3029 open the node; other strings, even if addressing the same file, are
3030 not accepted (deprecated, use "base-node" instead)
3031
3032 "backing-file: string" (optional)
3033 The backing file string to write into the overlay image of 'top'.
3034 If 'top' is the active layer, specifying a backing file string is
3035 an error. This filename is not validated.
3036
3037 If a pathname string is such that it cannot be resolved by QEMU,
3038 that means that subsequent QMP or HMP commands must use node-names
3039 for the image in question, as filename lookup methods will fail.
3040
3041 If not specified, QEMU will automatically determine the backing
3042 file string to use, or error out if there is no obvious choice.
3043 Care should be taken when specifying the string, to specify a valid
3044 filename or protocol. (Since 2.1)
3045
3046 If top == base, that is an error. If top == active, the job will
3047 not be completed by itself, user needs to complete the job with the
3048 block-job-complete command after getting the ready event. (Since
3049 2.0)
3050
3051 If the base image is smaller than top, then the base image will be
3052 resized to be the same size as top. If top is smaller than the
3053 base image, the base will not be truncated. If you want the base
3054 image size to match the size of the smaller top, you can safely
3055 truncate it yourself once the commit operation successfully
3056 completes.
3057
3058 "speed: int" (optional)
3059 the maximum speed, in bytes per second
3060
3061 "filter-node-name: string" (optional)
3062 the node name that should be assigned to the filter driver that the
3063 commit job inserts into the graph above "top". If this option is
3064 not given, a node name is autogenerated. (Since: 2.9)
3065
3066 "auto-finalize: boolean" (optional)
3067 When false, this job will wait in a PENDING state after it has
3068 finished its work, waiting for "block-job-finalize" before making
3069 any block graph changes. When true, this job will automatically
3070 perform its abort or commit actions. Defaults to true. (Since 3.1)
3071
3072 "auto-dismiss: boolean" (optional)
3073 When false, this job will wait in a CONCLUDED state after it has
3074 completely ceased all work, and awaits "block-job-dismiss". When
3075 true, this job will automatically disappear from the query list
3076 without user intervention. Defaults to true. (Since 3.1)
3077
3078 Returns: Nothing on success If "device" does not exist, DeviceNotFound
3079 Any other error returns a GenericError.
3080
3081 Since: 1.3
3082
3083 Example:
3084
3085 -> { "execute": "block-commit",
3086 "arguments": { "device": "virtio0",
3087 "top": "/tmp/snap1.qcow2" } }
3088 <- { "return": {} }
3089
3090 drive-backup (Command) Start a point-in-time copy of a block device to
3091 a new destination. The status of ongoing drive-backup operations can
3092 be checked with query-block-jobs where the BlockJobInfo.type field has
3093 the value 'backup'. The operation can be stopped before it has
3094 completed using the block-job-cancel command.
3095
3096 Arguments: the members of "DriveBackup"
3097
3098 Returns: nothing on success If "device" is not a valid block device,
3099 GenericError
3100
3101 Since: 1.6
3102
3103 Example:
3104
3105 -> { "execute": "drive-backup",
3106 "arguments": { "device": "drive0",
3107 "sync": "full",
3108 "target": "backup.img" } }
3109 <- { "return": {} }
3110
3111 blockdev-backup (Command) Start a point-in-time copy of a block device
3112 to a new destination. The status of ongoing blockdev-backup operations
3113 can be checked with query-block-jobs where the BlockJobInfo.type field
3114 has the value 'backup'. The operation can be stopped before it has
3115 completed using the block-job-cancel command.
3116
3117 Arguments: the members of "BlockdevBackup"
3118
3119 Returns: nothing on success If "device" is not a valid block device,
3120 DeviceNotFound
3121
3122 Since: 2.3
3123
3124 Example:
3125
3126 -> { "execute": "blockdev-backup",
3127 "arguments": { "device": "src-id",
3128 "sync": "full",
3129 "target": "tgt-id" } }
3130 <- { "return": {} }
3131
3132 query-named-block-nodes (Command) Get the named block driver list
3133
3134 Returns: the list of BlockDeviceInfo
3135
3136 Since: 2.0
3137
3138 Example:
3139
3140 -> { "execute": "query-named-block-nodes" }
3141 <- { "return": [ { "ro":false,
3142 "drv":"qcow2",
3143 "encrypted":false,
3144 "file":"disks/test.qcow2",
3145 "node-name": "my-node",
3146 "backing_file_depth":1,
3147 "bps":1000000,
3148 "bps_rd":0,
3149 "bps_wr":0,
3150 "iops":1000000,
3151 "iops_rd":0,
3152 "iops_wr":0,
3153 "bps_max": 8000000,
3154 "bps_rd_max": 0,
3155 "bps_wr_max": 0,
3156 "iops_max": 0,
3157 "iops_rd_max": 0,
3158 "iops_wr_max": 0,
3159 "iops_size": 0,
3160 "write_threshold": 0,
3161 "image":{
3162 "filename":"disks/test.qcow2",
3163 "format":"qcow2",
3164 "virtual-size":2048000,
3165 "backing_file":"base.qcow2",
3166 "full-backing-filename":"disks/base.qcow2",
3167 "backing-filename-format":"qcow2",
3168 "snapshots":[
3169 {
3170 "id": "1",
3171 "name": "snapshot1",
3172 "vm-state-size": 0,
3173 "date-sec": 10000200,
3174 "date-nsec": 12,
3175 "vm-clock-sec": 206,
3176 "vm-clock-nsec": 30
3177 }
3178 ],
3179 "backing-image":{
3180 "filename":"disks/base.qcow2",
3181 "format":"qcow2",
3182 "virtual-size":2048000
3183 }
3184 } } ] }
3185
3186 XDbgBlockGraphNodeType (Enum)
3187
3188 Values:
3189
3190 "block-backend"
3191 corresponds to BlockBackend
3192
3193 "block-job"
3194 corresonds to BlockJob
3195
3196 "block-driver"
3197 corresponds to BlockDriverState
3198
3199 Since: 4.0
3200
3201 XDbgBlockGraphNode (Object)
3202
3203 Members:
3204
3205 "id: int"
3206 Block graph node identifier. This "id" is generated only for
3207 x-debug-query-block-graph and does not relate to any other
3208 identifiers in Qemu.
3209
3210 "type: XDbgBlockGraphNodeType"
3211 Type of graph node. Can be one of block-backend, block-job or
3212 block-driver-state.
3213
3214 "name: string"
3215 Human readable name of the node. Corresponds to node-name for
3216 block-driver-state nodes; is not guaranteed to be unique in the
3217 whole graph (with block-jobs and block-backends).
3218
3219 Since: 4.0
3220
3221 BlockPermission (Enum)
3222
3223 Enum of base block permissions.
3224
3225 Values:
3226
3227 "consistent-read"
3228 A user that has the "permission" of consistent reads is guaranteed
3229 that their view of the contents of the block device is complete and
3230 self-consistent, representing the contents of a disk at a specific
3231 point. For most block devices (including their backing files) this
3232 is true, but the property cannot be maintained in a few situations
3233 like for intermediate nodes of a commit block job.
3234
3235 "write"
3236 This permission is required to change the visible disk contents.
3237
3238 "write-unchanged"
3239 This permission (which is weaker than BLK_PERM_WRITE) is both
3240 enough and required for writes to the block node when the caller
3241 promises that the visible disk content doesn't change. As the
3242 BLK_PERM_WRITE permission is strictly stronger, either is
3243 sufficient to perform an unchanging write.
3244
3245 "resize"
3246 This permission is required to change the size of a block node.
3247
3248 "graph-mod"
3249 This permission is required to change the node that this BdrvChild
3250 points to.
3251
3252 Since: 4.0
3253
3254 XDbgBlockGraphEdge (Object)
3255
3256 Block Graph edge description for x-debug-query-block-graph.
3257
3258 Members:
3259
3260 "parent: int"
3261 parent id
3262
3263 "child: int"
3264 child id
3265
3266 "name: string"
3267 name of the relation (examples are 'file' and 'backing')
3268
3269 "perm: array of BlockPermission"
3270 granted permissions for the parent operating on the child
3271
3272 "shared-perm: array of BlockPermission"
3273 permissions that can still be granted to other users of the child
3274 while it is still attached to this parent
3275
3276 Since: 4.0
3277
3278 XDbgBlockGraph (Object)
3279
3280 Block Graph - list of nodes and list of edges.
3281
3282 Members:
3283
3284 "nodes: array of XDbgBlockGraphNode"
3285 Not documented
3286
3287 "edges: array of XDbgBlockGraphEdge"
3288 Not documented
3289
3290 Since: 4.0
3291
3292 x-debug-query-block-graph (Command) Get the block graph.
3293
3294 Since: 4.0
3295
3296 drive-mirror (Command) Start mirroring a block device's writes to a
3297 new destination. target specifies the target of the new image. If the
3298 file exists, or if it is a device, it will be used as the new
3299 destination for writes. If it does not exist, a new file will be
3300 created. format specifies the format of the mirror image, default is to
3301 probe if mode='existing', else the format of the source.
3302
3303 Arguments: the members of "DriveMirror"
3304
3305 Returns: nothing on success If "device" is not a valid block device,
3306 GenericError
3307
3308 Since: 1.3
3309
3310 Example:
3311
3312 -> { "execute": "drive-mirror",
3313 "arguments": { "device": "ide-hd0",
3314 "target": "/some/place/my-image",
3315 "sync": "full",
3316 "format": "qcow2" } }
3317 <- { "return": {} }
3318
3319 DriveMirror (Object)
3320
3321 A set of parameters describing drive mirror setup.
3322
3323 Members:
3324
3325 "job-id: string" (optional)
3326 identifier for the newly-created block job. If omitted, the device
3327 name will be used. (Since 2.7)
3328
3329 "device: string"
3330 the device name or node-name of a root node whose writes should be
3331 mirrored.
3332
3333 "target: string"
3334 the target of the new image. If the file exists, or if it is a
3335 device, the existing file/device will be used as the new
3336 destination. If it does not exist, a new file will be created.
3337
3338 "format: string" (optional)
3339 the format of the new destination, default is to probe if "mode" is
3340 'existing', else the format of the source
3341
3342 "node-name: string" (optional)
3343 the new block driver state node name in the graph (Since 2.1)
3344
3345 "replaces: string" (optional)
3346 with sync=full graph node name to be replaced by the new image when
3347 a whole image copy is done. This can be used to repair broken
3348 Quorum files. (Since 2.1)
3349
3350 "mode: NewImageMode" (optional)
3351 whether and how QEMU should create a new image, default is
3352 'absolute-paths'.
3353
3354 "speed: int" (optional)
3355 the maximum speed, in bytes per second
3356
3357 "sync: MirrorSyncMode"
3358 what parts of the disk image should be copied to the destination
3359 (all the disk, only the sectors allocated in the topmost image, or
3360 only new I/O).
3361
3362 "granularity: int" (optional)
3363 granularity of the dirty bitmap, default is 64K if the image format
3364 doesn't have clusters, 4K if the clusters are smaller than that,
3365 else the cluster size. Must be a power of 2 between 512 and 64M
3366 (since 1.4).
3367
3368 "buf-size: int" (optional)
3369 maximum amount of data in flight from source to target (since 1.4).
3370
3371 "on-source-error: BlockdevOnError" (optional)
3372 the action to take on an error on the source, default 'report'.
3373 'stop' and 'enospc' can only be used if the block device supports
3374 io-status (see BlockInfo).
3375
3376 "on-target-error: BlockdevOnError" (optional)
3377 the action to take on an error on the target, default 'report' (no
3378 limitations, since this applies to a different block device than
3379 "device").
3380
3381 "unmap: boolean" (optional)
3382 Whether to try to unmap target sectors where source has only zero.
3383 If true, and target unallocated sectors will read as zero, target
3384 image sectors will be unmapped; otherwise, zeroes will be written.
3385 Both will result in identical contents. Default is true. (Since
3386 2.4)
3387
3388 "copy-mode: MirrorCopyMode" (optional)
3389 when to copy data to the destination; defaults to 'background'
3390 (Since: 3.0)
3391
3392 "auto-finalize: boolean" (optional)
3393 When false, this job will wait in a PENDING state after it has
3394 finished its work, waiting for "block-job-finalize" before making
3395 any block graph changes. When true, this job will automatically
3396 perform its abort or commit actions. Defaults to true. (Since 3.1)
3397
3398 "auto-dismiss: boolean" (optional)
3399 When false, this job will wait in a CONCLUDED state after it has
3400 completely ceased all work, and awaits "block-job-dismiss". When
3401 true, this job will automatically disappear from the query list
3402 without user intervention. Defaults to true. (Since 3.1)
3403
3404 Since: 1.3
3405
3406 BlockDirtyBitmap (Object)
3407
3408 Members:
3409
3410 "node: string"
3411 name of device/node which the bitmap is tracking
3412
3413 "name: string"
3414 name of the dirty bitmap
3415
3416 Since: 2.4
3417
3418 BlockDirtyBitmapAdd (Object)
3419
3420 Members:
3421
3422 "node: string"
3423 name of device/node which the bitmap is tracking
3424
3425 "name: string"
3426 name of the dirty bitmap (must be less than 1024 bytes)
3427
3428 "granularity: int" (optional)
3429 the bitmap granularity, default is 64k for block-dirty-bitmap-add
3430
3431 "persistent: boolean" (optional)
3432 the bitmap is persistent, i.e. it will be saved to the
3433 corresponding block device image file on its close. For now only
3434 Qcow2 disks support persistent bitmaps. Default is false for block-
3435 dirty-bitmap-add. (Since: 2.10)
3436
3437 "disabled: boolean" (optional)
3438 the bitmap is created in the disabled state, which means that it
3439 will not track drive changes. The bitmap may be enabled with block-
3440 dirty-bitmap-enable. Default is false. (Since: 4.0)
3441
3442 Since: 2.4
3443
3444 BlockDirtyBitmapMergeSource (Alternate)
3445
3446 Members:
3447
3448 "local: string"
3449 name of the bitmap, attached to the same node as target bitmap.
3450
3451 "external: BlockDirtyBitmap"
3452 bitmap with specified node
3453
3454 Since: 4.1
3455
3456 BlockDirtyBitmapMerge (Object)
3457
3458 Members:
3459
3460 "node: string"
3461 name of device/node which the "target" bitmap is tracking
3462
3463 "target: string"
3464 name of the destination dirty bitmap
3465
3466 "bitmaps: array of BlockDirtyBitmapMergeSource"
3467 name(s) of the source dirty bitmap(s) at "node" and/or fully
3468 specifed BlockDirtyBitmap elements. The latter are supported since
3469 4.1.
3470
3471 Since: 4.0
3472
3473 block-dirty-bitmap-add (Command) Create a dirty bitmap with a name on
3474 the node, and start tracking the writes.
3475
3476 Returns: nothing on success If "node" is not a valid block device or
3477 node, DeviceNotFound If "name" is already taken, GenericError with an
3478 explanation
3479
3480 Since: 2.4
3481
3482 Example:
3483
3484 -> { "execute": "block-dirty-bitmap-add",
3485 "arguments": { "node": "drive0", "name": "bitmap0" } }
3486 <- { "return": {} }
3487
3488 block-dirty-bitmap-remove (Command) Stop write tracking and remove the
3489 dirty bitmap that was created with block-dirty-bitmap-add. If the
3490 bitmap is persistent, remove it from its storage too.
3491
3492 Returns: nothing on success If "node" is not a valid block device or
3493 node, DeviceNotFound If "name" is not found, GenericError with an
3494 explanation if "name" is frozen by an operation, GenericError
3495
3496 Since: 2.4
3497
3498 Example:
3499
3500 -> { "execute": "block-dirty-bitmap-remove",
3501 "arguments": { "node": "drive0", "name": "bitmap0" } }
3502 <- { "return": {} }
3503
3504 block-dirty-bitmap-clear (Command) Clear (reset) a dirty bitmap on the
3505 device, so that an incremental backup from this point in time forward
3506 will only backup clusters modified after this clear operation.
3507
3508 Returns: nothing on success If "node" is not a valid block device,
3509 DeviceNotFound If "name" is not found, GenericError with an explanation
3510
3511 Since: 2.4
3512
3513 Example:
3514
3515 -> { "execute": "block-dirty-bitmap-clear",
3516 "arguments": { "node": "drive0", "name": "bitmap0" } }
3517 <- { "return": {} }
3518
3519 block-dirty-bitmap-enable (Command) Enables a dirty bitmap so that it
3520 will begin tracking disk changes.
3521
3522 Returns: nothing on success If "node" is not a valid block device,
3523 DeviceNotFound If "name" is not found, GenericError with an explanation
3524
3525 Since: 4.0
3526
3527 Example:
3528
3529 -> { "execute": "block-dirty-bitmap-enable",
3530 "arguments": { "node": "drive0", "name": "bitmap0" } }
3531 <- { "return": {} }
3532
3533 block-dirty-bitmap-disable (Command) Disables a dirty bitmap so that
3534 it will stop tracking disk changes.
3535
3536 Returns: nothing on success If "node" is not a valid block device,
3537 DeviceNotFound If "name" is not found, GenericError with an explanation
3538
3539 Since: 4.0
3540
3541 Example:
3542
3543 -> { "execute": "block-dirty-bitmap-disable",
3544 "arguments": { "node": "drive0", "name": "bitmap0" } }
3545 <- { "return": {} }
3546
3547 block-dirty-bitmap-merge (Command) Merge dirty bitmaps listed in
3548 "bitmaps" to the "target" dirty bitmap. Dirty bitmaps in "bitmaps"
3549 will be unchanged, except if it also appears as the "target" bitmap.
3550 Any bits already set in "target" will still be set after the merge,
3551 i.e., this operation does not clear the target. On error, "target" is
3552 unchanged.
3553
3554 The resulting bitmap will count as dirty any clusters that were dirty
3555 in any of the source bitmaps. This can be used to achieve backup
3556 checkpoints, or in simpler usages, to copy bitmaps.
3557
3558 Returns: nothing on success If "node" is not a valid block device,
3559 DeviceNotFound If any bitmap in "bitmaps" or "target" is not found,
3560 GenericError If any of the bitmaps have different sizes or
3561 granularities, GenericError
3562
3563 Since: 4.0
3564
3565 Example:
3566
3567 -> { "execute": "block-dirty-bitmap-merge",
3568 "arguments": { "node": "drive0", "target": "bitmap0",
3569 "bitmaps": ["bitmap1"] } }
3570 <- { "return": {} }
3571
3572 BlockDirtyBitmapSha256 (Object)
3573
3574 SHA256 hash of dirty bitmap data
3575
3576 Members:
3577
3578 "sha256: string"
3579 ASCII representation of SHA256 bitmap hash
3580
3581 Since: 2.10
3582
3583 x-debug-block-dirty-bitmap-sha256 (Command) Get bitmap SHA256.
3584
3585 Returns: BlockDirtyBitmapSha256 on success If "node" is not a valid
3586 block device, DeviceNotFound If "name" is not found or if hashing has
3587 failed, GenericError with an explanation
3588
3589 Since: 2.10
3590
3591 blockdev-mirror (Command) Start mirroring a block device's writes to a
3592 new destination.
3593
3594 Arguments:
3595
3596 "job-id: string" (optional)
3597 identifier for the newly-created block job. If omitted, the device
3598 name will be used. (Since 2.7)
3599
3600 "device: string"
3601 The device name or node-name of a root node whose writes should be
3602 mirrored.
3603
3604 "target: string"
3605 the id or node-name of the block device to mirror to. This mustn't
3606 be attached to guest.
3607
3608 "replaces: string" (optional)
3609 with sync=full graph node name to be replaced by the new image when
3610 a whole image copy is done. This can be used to repair broken
3611 Quorum files.
3612
3613 "speed: int" (optional)
3614 the maximum speed, in bytes per second
3615
3616 "sync: MirrorSyncMode"
3617 what parts of the disk image should be copied to the destination
3618 (all the disk, only the sectors allocated in the topmost image, or
3619 only new I/O).
3620
3621 "granularity: int" (optional)
3622 granularity of the dirty bitmap, default is 64K if the image format
3623 doesn't have clusters, 4K if the clusters are smaller than that,
3624 else the cluster size. Must be a power of 2 between 512 and 64M
3625
3626 "buf-size: int" (optional)
3627 maximum amount of data in flight from source to target
3628
3629 "on-source-error: BlockdevOnError" (optional)
3630 the action to take on an error on the source, default 'report'.
3631 'stop' and 'enospc' can only be used if the block device supports
3632 io-status (see BlockInfo).
3633
3634 "on-target-error: BlockdevOnError" (optional)
3635 the action to take on an error on the target, default 'report' (no
3636 limitations, since this applies to a different block device than
3637 "device").
3638
3639 "filter-node-name: string" (optional)
3640 the node name that should be assigned to the filter driver that the
3641 mirror job inserts into the graph above "device". If this option is
3642 not given, a node name is autogenerated. (Since: 2.9)
3643
3644 "copy-mode: MirrorCopyMode" (optional)
3645 when to copy data to the destination; defaults to 'background'
3646 (Since: 3.0)
3647
3648 "auto-finalize: boolean" (optional)
3649 When false, this job will wait in a PENDING state after it has
3650 finished its work, waiting for "block-job-finalize" before making
3651 any block graph changes. When true, this job will automatically
3652 perform its abort or commit actions. Defaults to true. (Since 3.1)
3653
3654 "auto-dismiss: boolean" (optional)
3655 When false, this job will wait in a CONCLUDED state after it has
3656 completely ceased all work, and awaits "block-job-dismiss". When
3657 true, this job will automatically disappear from the query list
3658 without user intervention. Defaults to true. (Since 3.1)
3659
3660 Returns: nothing on success.
3661
3662 Since: 2.6
3663
3664 Example:
3665
3666 -> { "execute": "blockdev-mirror",
3667 "arguments": { "device": "ide-hd0",
3668 "target": "target0",
3669 "sync": "full" } }
3670 <- { "return": {} }
3671
3672 block_set_io_throttle (Command) Change I/O throttle limits for a block
3673 drive.
3674
3675 Since QEMU 2.4, each device with I/O limits is member of a throttle
3676 group.
3677
3678 If two or more devices are members of the same group, the limits will
3679 apply to the combined I/O of the whole group in a round-robin fashion.
3680 Therefore, setting new I/O limits to a device will affect the whole
3681 group.
3682
3683 The name of the group can be specified using the 'group' parameter. If
3684 the parameter is unset, it is assumed to be the current group of that
3685 device. If it's not in any group yet, the name of the device will be
3686 used as the name for its group.
3687
3688 The 'group' parameter can also be used to move a device to a different
3689 group. In this case the limits specified in the parameters will be
3690 applied to the new group only.
3691
3692 I/O limits can be disabled by setting all of them to 0. In this case
3693 the device will be removed from its group and the rest of its members
3694 will not be affected. The 'group' parameter is ignored.
3695
3696 Arguments: the members of "BlockIOThrottle"
3697
3698 Returns: Nothing on success If "device" is not a valid block device,
3699 DeviceNotFound
3700
3701 Since: 1.1
3702
3703 Example:
3704
3705 -> { "execute": "block_set_io_throttle",
3706 "arguments": { "id": "virtio-blk-pci0/virtio-backend",
3707 "bps": 0,
3708 "bps_rd": 0,
3709 "bps_wr": 0,
3710 "iops": 512,
3711 "iops_rd": 0,
3712 "iops_wr": 0,
3713 "bps_max": 0,
3714 "bps_rd_max": 0,
3715 "bps_wr_max": 0,
3716 "iops_max": 0,
3717 "iops_rd_max": 0,
3718 "iops_wr_max": 0,
3719 "bps_max_length": 0,
3720 "iops_size": 0 } }
3721 <- { "return": {} }
3722
3723 -> { "execute": "block_set_io_throttle",
3724 "arguments": { "id": "ide0-1-0",
3725 "bps": 1000000,
3726 "bps_rd": 0,
3727 "bps_wr": 0,
3728 "iops": 0,
3729 "iops_rd": 0,
3730 "iops_wr": 0,
3731 "bps_max": 8000000,
3732 "bps_rd_max": 0,
3733 "bps_wr_max": 0,
3734 "iops_max": 0,
3735 "iops_rd_max": 0,
3736 "iops_wr_max": 0,
3737 "bps_max_length": 60,
3738 "iops_size": 0 } }
3739 <- { "return": {} }
3740
3741 BlockIOThrottle (Object)
3742
3743 A set of parameters describing block throttling.
3744
3745 Members:
3746
3747 "device: string" (optional)
3748 Block device name (deprecated, use "id" instead)
3749
3750 "id: string" (optional)
3751 The name or QOM path of the guest device (since: 2.8)
3752
3753 "bps: int"
3754 total throughput limit in bytes per second
3755
3756 "bps_rd: int"
3757 read throughput limit in bytes per second
3758
3759 "bps_wr: int"
3760 write throughput limit in bytes per second
3761
3762 "iops: int"
3763 total I/O operations per second
3764
3765 "iops_rd: int"
3766 read I/O operations per second
3767
3768 "iops_wr: int"
3769 write I/O operations per second
3770
3771 "bps_max: int" (optional)
3772 total throughput limit during bursts, in bytes (Since 1.7)
3773
3774 "bps_rd_max: int" (optional)
3775 read throughput limit during bursts, in bytes (Since 1.7)
3776
3777 "bps_wr_max: int" (optional)
3778 write throughput limit during bursts, in bytes (Since 1.7)
3779
3780 "iops_max: int" (optional)
3781 total I/O operations per second during bursts, in bytes (Since 1.7)
3782
3783 "iops_rd_max: int" (optional)
3784 read I/O operations per second during bursts, in bytes (Since 1.7)
3785
3786 "iops_wr_max: int" (optional)
3787 write I/O operations per second during bursts, in bytes (Since 1.7)
3788
3789 "bps_max_length: int" (optional)
3790 maximum length of the "bps_max" burst period, in seconds. It must
3791 only be set if "bps_max" is set as well. Defaults to 1. (Since
3792 2.6)
3793
3794 "bps_rd_max_length: int" (optional)
3795 maximum length of the "bps_rd_max" burst period, in seconds. It
3796 must only be set if "bps_rd_max" is set as well. Defaults to 1.
3797 (Since 2.6)
3798
3799 "bps_wr_max_length: int" (optional)
3800 maximum length of the "bps_wr_max" burst period, in seconds. It
3801 must only be set if "bps_wr_max" is set as well. Defaults to 1.
3802 (Since 2.6)
3803
3804 "iops_max_length: int" (optional)
3805 maximum length of the "iops" burst period, in seconds. It must only
3806 be set if "iops_max" is set as well. Defaults to 1. (Since 2.6)
3807
3808 "iops_rd_max_length: int" (optional)
3809 maximum length of the "iops_rd_max" burst period, in seconds. It
3810 must only be set if "iops_rd_max" is set as well. Defaults to 1.
3811 (Since 2.6)
3812
3813 "iops_wr_max_length: int" (optional)
3814 maximum length of the "iops_wr_max" burst period, in seconds. It
3815 must only be set if "iops_wr_max" is set as well. Defaults to 1.
3816 (Since 2.6)
3817
3818 "iops_size: int" (optional)
3819 an I/O size in bytes (Since 1.7)
3820
3821 "group: string" (optional)
3822 throttle group name (Since 2.4)
3823
3824 Since: 1.1
3825
3826 ThrottleLimits (Object)
3827
3828 Limit parameters for throttling. Since some limit combinations are
3829 illegal, limits should always be set in one transaction. All fields are
3830 optional. When setting limits, if a field is missing the current value
3831 is not changed.
3832
3833 Members:
3834
3835 "iops-total: int" (optional)
3836 limit total I/O operations per second
3837
3838 "iops-total-max: int" (optional)
3839 I/O operations burst
3840
3841 "iops-total-max-length: int" (optional)
3842 length of the iops-total-max burst period, in seconds It must only
3843 be set if "iops-total-max" is set as well.
3844
3845 "iops-read: int" (optional)
3846 limit read operations per second
3847
3848 "iops-read-max: int" (optional)
3849 I/O operations read burst
3850
3851 "iops-read-max-length: int" (optional)
3852 length of the iops-read-max burst period, in seconds It must only
3853 be set if "iops-read-max" is set as well.
3854
3855 "iops-write: int" (optional)
3856 limit write operations per second
3857
3858 "iops-write-max: int" (optional)
3859 I/O operations write burst
3860
3861 "iops-write-max-length: int" (optional)
3862 length of the iops-write-max burst period, in seconds It must only
3863 be set if "iops-write-max" is set as well.
3864
3865 "bps-total: int" (optional)
3866 limit total bytes per second
3867
3868 "bps-total-max: int" (optional)
3869 total bytes burst
3870
3871 "bps-total-max-length: int" (optional)
3872 length of the bps-total-max burst period, in seconds. It must only
3873 be set if "bps-total-max" is set as well.
3874
3875 "bps-read: int" (optional)
3876 limit read bytes per second
3877
3878 "bps-read-max: int" (optional)
3879 total bytes read burst
3880
3881 "bps-read-max-length: int" (optional)
3882 length of the bps-read-max burst period, in seconds It must only be
3883 set if "bps-read-max" is set as well.
3884
3885 "bps-write: int" (optional)
3886 limit write bytes per second
3887
3888 "bps-write-max: int" (optional)
3889 total bytes write burst
3890
3891 "bps-write-max-length: int" (optional)
3892 length of the bps-write-max burst period, in seconds It must only
3893 be set if "bps-write-max" is set as well.
3894
3895 "iops-size: int" (optional)
3896 when limiting by iops max size of an I/O in bytes
3897
3898 Since: 2.11
3899
3900 block-stream (Command) Copy data from a backing file into a block
3901 device.
3902
3903 The block streaming operation is performed in the background until the
3904 entire backing file has been copied. This command returns immediately
3905 once streaming has started. The status of ongoing block streaming
3906 operations can be checked with query-block-jobs. The operation can be
3907 stopped before it has completed using the block-job-cancel command.
3908
3909 The node that receives the data is called the top image, can be located
3910 in any part of the chain (but always above the base image; see below)
3911 and can be specified using its device or node name. Earlier qemu
3912 versions only allowed 'device' to name the top level node; presence of
3913 the 'base-node' parameter during introspection can be used as a witness
3914 of the enhanced semantics of 'device'.
3915
3916 If a base file is specified then sectors are not copied from that base
3917 file and its backing chain. When streaming completes the image file
3918 will have the base file as its backing file. This can be used to
3919 stream a subset of the backing file chain instead of flattening the
3920 entire image.
3921
3922 On successful completion the image file is updated to drop the backing
3923 file and the BLOCK_JOB_COMPLETED event is emitted.
3924
3925 Arguments:
3926
3927 "job-id: string" (optional)
3928 identifier for the newly-created block job. If omitted, the device
3929 name will be used. (Since 2.7)
3930
3931 "device: string"
3932 the device or node name of the top image
3933
3934 "base: string" (optional)
3935 the common backing file name. It cannot be set if "base-node" is
3936 also set.
3937
3938 "base-node: string" (optional)
3939 the node name of the backing file. It cannot be set if "base" is
3940 also set. (Since 2.8)
3941
3942 "backing-file: string" (optional)
3943 The backing file string to write into the top image. This filename
3944 is not validated.
3945
3946 If a pathname string is such that it cannot be resolved by QEMU,
3947 that means that subsequent QMP or HMP commands must use node-names
3948 for the image in question, as filename lookup methods will fail.
3949
3950 If not specified, QEMU will automatically determine the backing
3951 file string to use, or error out if there is no obvious choice.
3952 Care should be taken when specifying the string, to specify a valid
3953 filename or protocol. (Since 2.1)
3954
3955 "speed: int" (optional)
3956 the maximum speed, in bytes per second
3957
3958 "on-error: BlockdevOnError" (optional)
3959 the action to take on an error (default report). 'stop' and
3960 'enospc' can only be used if the block device supports io-status
3961 (see BlockInfo). Since 1.3.
3962
3963 "auto-finalize: boolean" (optional)
3964 When false, this job will wait in a PENDING state after it has
3965 finished its work, waiting for "block-job-finalize" before making
3966 any block graph changes. When true, this job will automatically
3967 perform its abort or commit actions. Defaults to true. (Since 3.1)
3968
3969 "auto-dismiss: boolean" (optional)
3970 When false, this job will wait in a CONCLUDED state after it has
3971 completely ceased all work, and awaits "block-job-dismiss". When
3972 true, this job will automatically disappear from the query list
3973 without user intervention. Defaults to true. (Since 3.1)
3974
3975 Returns: Nothing on success. If "device" does not exist,
3976 DeviceNotFound.
3977
3978 Since: 1.1
3979
3980 Example:
3981
3982 -> { "execute": "block-stream",
3983 "arguments": { "device": "virtio0",
3984 "base": "/tmp/master.qcow2" } }
3985 <- { "return": {} }
3986
3987 block-job-set-speed (Command) Set maximum speed for a background block
3988 operation.
3989
3990 This command can only be issued when there is an active block job.
3991
3992 Throttling can be disabled by setting the speed to 0.
3993
3994 Arguments:
3995
3996 "device: string"
3997 The job identifier. This used to be a device name (hence the name
3998 of the parameter), but since QEMU 2.7 it can have other values.
3999
4000 "speed: int"
4001 the maximum speed, in bytes per second, or 0 for unlimited.
4002 Defaults to 0.
4003
4004 Returns: Nothing on success If no background operation is active on
4005 this device, DeviceNotActive
4006
4007 Since: 1.1
4008
4009 block-job-cancel (Command) Stop an active background block operation.
4010
4011 This command returns immediately after marking the active background
4012 block operation for cancellation. It is an error to call this command
4013 if no operation is in progress.
4014
4015 The operation will cancel as soon as possible and then emit the
4016 BLOCK_JOB_CANCELLED event. Before that happens the job is still
4017 visible when enumerated using query-block-jobs.
4018
4019 Note that if you issue 'block-job-cancel' after 'drive-mirror' has
4020 indicated (via the event BLOCK_JOB_READY) that the source and
4021 destination are synchronized, then the event triggered by this command
4022 changes to BLOCK_JOB_COMPLETED, to indicate that the mirroring has
4023 ended and the destination now has a point-in-time copy tied to the time
4024 of the cancellation.
4025
4026 For streaming, the image file retains its backing file unless the
4027 streaming operation happens to complete just as it is being cancelled.
4028 A new streaming operation can be started at a later time to finish
4029 copying all data from the backing file.
4030
4031 Arguments:
4032
4033 "device: string"
4034 The job identifier. This used to be a device name (hence the name
4035 of the parameter), but since QEMU 2.7 it can have other values.
4036
4037 "force: boolean" (optional)
4038 If true, and the job has already emitted the event BLOCK_JOB_READY,
4039 abandon the job immediately (even if it is paused) instead of
4040 waiting for the destination to complete its final synchronization
4041 (since 1.3)
4042
4043 Returns: Nothing on success If no background operation is active on
4044 this device, DeviceNotActive
4045
4046 Since: 1.1
4047
4048 block-job-pause (Command) Pause an active background block operation.
4049
4050 This command returns immediately after marking the active background
4051 block operation for pausing. It is an error to call this command if no
4052 operation is in progress or if the job is already paused.
4053
4054 The operation will pause as soon as possible. No event is emitted when
4055 the operation is actually paused. Cancelling a paused job
4056 automatically resumes it.
4057
4058 Arguments:
4059
4060 "device: string"
4061 The job identifier. This used to be a device name (hence the name
4062 of the parameter), but since QEMU 2.7 it can have other values.
4063
4064 Returns: Nothing on success If no background operation is active on
4065 this device, DeviceNotActive
4066
4067 Since: 1.3
4068
4069 block-job-resume (Command) Resume an active background block
4070 operation.
4071
4072 This command returns immediately after resuming a paused background
4073 block operation. It is an error to call this command if no operation
4074 is in progress or if the job is not paused.
4075
4076 This command also clears the error status of the job.
4077
4078 Arguments:
4079
4080 "device: string"
4081 The job identifier. This used to be a device name (hence the name
4082 of the parameter), but since QEMU 2.7 it can have other values.
4083
4084 Returns: Nothing on success If no background operation is active on
4085 this device, DeviceNotActive
4086
4087 Since: 1.3
4088
4089 block-job-complete (Command) Manually trigger completion of an active
4090 background block operation. This is supported for drive mirroring,
4091 where it also switches the device to write to the target path only.
4092 The ability to complete is signaled with a BLOCK_JOB_READY event.
4093
4094 This command completes an active background block operation
4095 synchronously. The ordering of this command's return with the
4096 BLOCK_JOB_COMPLETED event is not defined. Note that if an I/O error
4097 occurs during the processing of this command: 1) the command itself
4098 will fail; 2) the error will be processed according to the
4099 rerror/werror arguments that were specified when starting the
4100 operation.
4101
4102 A cancelled or paused job cannot be completed.
4103
4104 Arguments:
4105
4106 "device: string"
4107 The job identifier. This used to be a device name (hence the name
4108 of the parameter), but since QEMU 2.7 it can have other values.
4109
4110 Returns: Nothing on success If no background operation is active on
4111 this device, DeviceNotActive
4112
4113 Since: 1.3
4114
4115 block-job-dismiss (Command) For jobs that have already concluded,
4116 remove them from the block-job-query list. This command only needs to
4117 be run for jobs which were started with QEMU 2.12+ job lifetime
4118 management semantics.
4119
4120 This command will refuse to operate on any job that has not yet reached
4121 its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of the
4122 BLOCK_JOB_READY event, block-job-cancel or block-job-complete will
4123 still need to be used as appropriate.
4124
4125 Arguments:
4126
4127 "id: string"
4128 The job identifier.
4129
4130 Returns: Nothing on success
4131
4132 Since: 2.12
4133
4134 block-job-finalize (Command) Once a job that has manual=true reaches
4135 the pending state, it can be instructed to finalize any graph changes
4136 and do any necessary cleanup via this command. For jobs in a
4137 transaction, instructing one job to finalize will force ALL jobs in the
4138 transaction to finalize, so it is only necessary to instruct a single
4139 member job to finalize.
4140
4141 Arguments:
4142
4143 "id: string"
4144 The job identifier.
4145
4146 Returns: Nothing on success
4147
4148 Since: 2.12
4149
4150 BlockdevDiscardOptions (Enum)
4151
4152 Determines how to handle discard requests.
4153
4154 Values:
4155
4156 "ignore"
4157 Ignore the request
4158
4159 "unmap"
4160 Forward as an unmap request
4161
4162 Since: 2.9
4163
4164 BlockdevDetectZeroesOptions (Enum)
4165
4166 Describes the operation mode for the automatic conversion of plain zero
4167 writes by the OS to driver specific optimized zero write commands.
4168
4169 Values:
4170
4171 "off"
4172 Disabled (default)
4173
4174 "on"
4175 Enabled
4176
4177 "unmap"
4178 Enabled and even try to unmap blocks if possible. This requires
4179 also that "BlockdevDiscardOptions" is set to unmap for this device.
4180
4181 Since: 2.1
4182
4183 BlockdevAioOptions (Enum)
4184
4185 Selects the AIO backend to handle I/O requests
4186
4187 Values:
4188
4189 "threads"
4190 Use qemu's thread pool
4191
4192 "native"
4193 Use native AIO backend (only Linux and Windows)
4194
4195 Since: 2.9
4196
4197 BlockdevCacheOptions (Object)
4198
4199 Includes cache-related options for block devices
4200
4201 Members:
4202
4203 "direct: boolean" (optional)
4204 enables use of O_DIRECT (bypass the host page cache; default:
4205 false)
4206
4207 "no-flush: boolean" (optional)
4208 ignore any flush requests for the device (default: false)
4209
4210 Since: 2.9
4211
4212 BlockdevDriver (Enum)
4213
4214 Drivers that are supported in block device operations.
4215
4216 Values:
4217
4218 "vxhs"
4219 Since 2.10
4220
4221 "throttle"
4222 Since 2.11
4223
4224 "nvme"
4225 Since 2.12
4226
4227 "copy-on-read"
4228 Since 3.0
4229
4230 "blklogwrites"
4231 Since 3.0
4232
4233 "blkreplay"
4234 Since 4.2
4235
4236 "blkdebug"
4237 Not documented
4238
4239 "blkverify"
4240 Not documented
4241
4242 "bochs"
4243 Not documented
4244
4245 "cloop"
4246 Not documented
4247
4248 "dmg"
4249 Not documented
4250
4251 "file"
4252 Not documented
4253
4254 "ftp"
4255 Not documented
4256
4257 "ftps"
4258 Not documented
4259
4260 "gluster"
4261 Not documented
4262
4263 "host_cdrom"
4264 Not documented
4265
4266 "host_device"
4267 Not documented
4268
4269 "http"
4270 Not documented
4271
4272 "https"
4273 Not documented
4274
4275 "iscsi"
4276 Not documented
4277
4278 "luks"
4279 Not documented
4280
4281 "nbd"
4282 Not documented
4283
4284 "nfs"
4285 Not documented
4286
4287 "null-aio"
4288 Not documented
4289
4290 "null-co"
4291 Not documented
4292
4293 "parallels"
4294 Not documented
4295
4296 "qcow"
4297 Not documented
4298
4299 "qcow2"
4300 Not documented
4301
4302 "qed"
4303 Not documented
4304
4305 "quorum"
4306 Not documented
4307
4308 "raw"
4309 Not documented
4310
4311 "rbd"
4312 Not documented
4313
4314 "replication"
4315 Not documented If: "defined(CONFIG_REPLICATION)"
4316
4317 "sheepdog"
4318 Not documented
4319
4320 "ssh"
4321 Not documented
4322
4323 "vdi"
4324 Not documented
4325
4326 "vhdx"
4327 Not documented
4328
4329 "vmdk"
4330 Not documented
4331
4332 "vpc"
4333 Not documented
4334
4335 "vvfat"
4336 Not documented
4337
4338 Since: 2.9
4339
4340 BlockdevOptionsFile (Object)
4341
4342 Driver specific block device options for the file backend.
4343
4344 Members:
4345
4346 "filename: string"
4347 path to the image file
4348
4349 "pr-manager: string" (optional)
4350 the id for the object that will handle persistent reservations for
4351 this device (default: none, forward the commands via SG_IO; since
4352 2.11)
4353
4354 "aio: BlockdevAioOptions" (optional)
4355 AIO backend (default: threads) (since: 2.8)
4356
4357 "locking: OnOffAuto" (optional)
4358 whether to enable file locking. If set to 'auto', only enable when
4359 Open File Descriptor (OFD) locking API is available (default: auto,
4360 since 2.10)
4361
4362 "drop-cache: boolean" (optional)
4363 invalidate page cache during live migration. This prevents stale
4364 data on the migration destination with cache.direct=off. Currently
4365 only supported on Linux hosts. (default: on, since: 4.0) If:
4366 "defined(CONFIG_LINUX)"
4367
4368 "x-check-cache-dropped: boolean" (optional)
4369 whether to check that page cache was dropped on live migration.
4370 May cause noticeable delays if the image file is large, do not use
4371 in production. (default: off) (since: 3.0)
4372
4373 Features:
4374
4375 "dynamic-auto-read-only"
4376 If present, enabled auto-read-only means that the driver will open
4377 the image read-only at first, dynamically reopen the image file
4378 read-write when the first writer is attached to the node and reopen
4379 read-only when the last writer is detached. This allows giving QEMU
4380 write permissions only on demand when an operation actually needs
4381 write access.
4382
4383 Since: 2.9
4384
4385 BlockdevOptionsNull (Object)
4386
4387 Driver specific block device options for the null backend.
4388
4389 Members:
4390
4391 "size: int" (optional)
4392 size of the device in bytes.
4393
4394 "latency-ns: int" (optional)
4395 emulated latency (in nanoseconds) in processing requests. Default
4396 to zero which completes requests immediately. (Since 2.4)
4397
4398 "read-zeroes: boolean" (optional)
4399 if true, reads from the device produce zeroes; if false, the buffer
4400 is left unchanged. (default: false; since: 4.1)
4401
4402 Since: 2.9
4403
4404 BlockdevOptionsNVMe (Object)
4405
4406 Driver specific block device options for the NVMe backend.
4407
4408 Members:
4409
4410 "device: string"
4411 controller address of the NVMe device.
4412
4413 "namespace: int"
4414 namespace number of the device, starting from 1.
4415
4416 Since: 2.12
4417
4418 BlockdevOptionsVVFAT (Object)
4419
4420 Driver specific block device options for the vvfat protocol.
4421
4422 Members:
4423
4424 "dir: string"
4425 directory to be exported as FAT image
4426
4427 "fat-type: int" (optional)
4428 FAT type: 12, 16 or 32
4429
4430 "floppy: boolean" (optional)
4431 whether to export a floppy image (true) or partitioned hard disk
4432 (false; default)
4433
4434 "label: string" (optional)
4435 set the volume label, limited to 11 bytes. FAT16 and FAT32
4436 traditionally have some restrictions on labels, which are ignored
4437 by most operating systems. Defaults to "QEMU VVFAT". (since 2.4)
4438
4439 "rw: boolean" (optional)
4440 whether to allow write operations (default: false)
4441
4442 Since: 2.9
4443
4444 BlockdevOptionsGenericFormat (Object)
4445
4446 Driver specific block device options for image format that have no
4447 option besides their data source.
4448
4449 Members:
4450
4451 "file: BlockdevRef"
4452 reference to or definition of the data source block device
4453
4454 Since: 2.9
4455
4456 BlockdevOptionsLUKS (Object)
4457
4458 Driver specific block device options for LUKS.
4459
4460 Members:
4461
4462 "key-secret: string" (optional)
4463 the ID of a QCryptoSecret object providing the decryption key
4464 (since 2.6). Mandatory except when doing a metadata-only probe of
4465 the image.
4466
4467 The members of "BlockdevOptionsGenericFormat"
4468
4469 Since: 2.9
4470
4471 BlockdevOptionsGenericCOWFormat (Object)
4472
4473 Driver specific block device options for image format that have no
4474 option besides their data source and an optional backing file.
4475
4476 Members:
4477
4478 "backing: BlockdevRefOrNull" (optional)
4479 reference to or definition of the backing file block device, null
4480 disables the backing file entirely. Defaults to the backing file
4481 stored the image file.
4482
4483 The members of "BlockdevOptionsGenericFormat"
4484
4485 Since: 2.9
4486
4487 Qcow2OverlapCheckMode (Enum)
4488
4489 General overlap check modes.
4490
4491 Values:
4492
4493 "none"
4494 Do not perform any checks
4495
4496 "constant"
4497 Perform only checks which can be done in constant time and without
4498 reading anything from disk
4499
4500 "cached"
4501 Perform only checks which can be done without reading anything from
4502 disk
4503
4504 "all"
4505 Perform all available overlap checks
4506
4507 Since: 2.9
4508
4509 Qcow2OverlapCheckFlags (Object)
4510
4511 Structure of flags for each metadata structure. Setting a field to
4512 'true' makes qemu guard that structure against unintended overwriting.
4513 The default value is chosen according to the template given.
4514
4515 Members:
4516
4517 "template: Qcow2OverlapCheckMode" (optional)
4518 Specifies a template mode which can be adjusted using the other
4519 flags, defaults to 'cached'
4520
4521 "bitmap-directory: boolean" (optional)
4522 since 3.0
4523
4524 "main-header: boolean" (optional)
4525 Not documented
4526
4527 "active-l1: boolean" (optional)
4528 Not documented
4529
4530 "active-l2: boolean" (optional)
4531 Not documented
4532
4533 "refcount-table: boolean" (optional)
4534 Not documented
4535
4536 "refcount-block: boolean" (optional)
4537 Not documented
4538
4539 "snapshot-table: boolean" (optional)
4540 Not documented
4541
4542 "inactive-l1: boolean" (optional)
4543 Not documented
4544
4545 "inactive-l2: boolean" (optional)
4546 Not documented
4547
4548 Since: 2.9
4549
4550 Qcow2OverlapChecks (Alternate)
4551
4552 Specifies which metadata structures should be guarded against
4553 unintended overwriting.
4554
4555 Members:
4556
4557 "flags: Qcow2OverlapCheckFlags"
4558 set of flags for separate specification of each metadata structure
4559 type
4560
4561 "mode: Qcow2OverlapCheckMode"
4562 named mode which chooses a specific set of flags
4563
4564 Since: 2.9
4565
4566 BlockdevQcowEncryptionFormat (Enum)
4567
4568 Values:
4569
4570 "aes"
4571 AES-CBC with plain64 initialization vectors
4572
4573 Since: 2.10
4574
4575 BlockdevQcowEncryption (Object)
4576
4577 Members:
4578
4579 "format: BlockdevQcowEncryptionFormat"
4580 Not documented
4581
4582 The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4583
4584 Since: 2.10
4585
4586 BlockdevOptionsQcow (Object)
4587
4588 Driver specific block device options for qcow.
4589
4590 Members:
4591
4592 "encrypt: BlockdevQcowEncryption" (optional)
4593 Image decryption options. Mandatory for encrypted images, except
4594 when doing a metadata-only probe of the image.
4595
4596 The members of "BlockdevOptionsGenericCOWFormat"
4597
4598 Since: 2.10
4599
4600 BlockdevQcow2EncryptionFormat (Enum)
4601
4602 Values:
4603
4604 "aes"
4605 AES-CBC with plain64 initialization vectors
4606
4607 "luks"
4608 Not documented
4609
4610 Since: 2.10
4611
4612 BlockdevQcow2Encryption (Object)
4613
4614 Members:
4615
4616 "format: BlockdevQcow2EncryptionFormat"
4617 Not documented
4618
4619 The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4620 The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
4621
4622 Since: 2.10
4623
4624 BlockdevOptionsQcow2 (Object)
4625
4626 Driver specific block device options for qcow2.
4627
4628 Members:
4629
4630 "lazy-refcounts: boolean" (optional)
4631 whether to enable the lazy refcounts feature (default is taken from
4632 the image file)
4633
4634 "pass-discard-request: boolean" (optional)
4635 whether discard requests to the qcow2 device should be forwarded to
4636 the data source
4637
4638 "pass-discard-snapshot: boolean" (optional)
4639 whether discard requests for the data source should be issued when
4640 a snapshot operation (e.g. deleting a snapshot) frees clusters in
4641 the qcow2 file
4642
4643 "pass-discard-other: boolean" (optional)
4644 whether discard requests for the data source should be issued on
4645 other occasions where a cluster gets freed
4646
4647 "overlap-check: Qcow2OverlapChecks" (optional)
4648 which overlap checks to perform for writes to the image, defaults
4649 to 'cached' (since 2.2)
4650
4651 "cache-size: int" (optional)
4652 the maximum total size of the L2 table and refcount block caches in
4653 bytes (since 2.2)
4654
4655 "l2-cache-size: int" (optional)
4656 the maximum size of the L2 table cache in bytes (since 2.2)
4657
4658 "l2-cache-entry-size: int" (optional)
4659 the size of each entry in the L2 cache in bytes. It must be a power
4660 of two between 512 and the cluster size. The default value is the
4661 cluster size (since 2.12)
4662
4663 "refcount-cache-size: int" (optional)
4664 the maximum size of the refcount block cache in bytes (since 2.2)
4665
4666 "cache-clean-interval: int" (optional)
4667 clean unused entries in the L2 and refcount caches. The interval is
4668 in seconds. The default value is 600 on supporting platforms, and 0
4669 on other platforms. 0 disables this feature. (since 2.5)
4670
4671 "encrypt: BlockdevQcow2Encryption" (optional)
4672 Image decryption options. Mandatory for encrypted images, except
4673 when doing a metadata-only probe of the image. (since 2.10)
4674
4675 "data-file: BlockdevRef" (optional)
4676 reference to or definition of the external data file. This may
4677 only be specified for images that require an external data file. If
4678 it is not specified for such an image, the data file name is loaded
4679 from the image file. (since 4.0)
4680
4681 The members of "BlockdevOptionsGenericCOWFormat"
4682
4683 Since: 2.9
4684
4685 SshHostKeyCheckMode (Enum)
4686
4687 "none" Don't check the host key at all "hash"
4688 Compare the host key with a given hash "known_hosts" Check the
4689 host key against the known_hosts file
4690
4691 Values:
4692
4693 "none"
4694 Not documented
4695
4696 "hash"
4697 Not documented
4698
4699 "known_hosts"
4700 Not documented
4701
4702 Since: 2.12
4703
4704 SshHostKeyCheckHashType (Enum)
4705
4706 "md5" The given hash is an md5 hash "sha1" The
4707 given hash is an sha1 hash
4708
4709 Values:
4710
4711 "md5"
4712 Not documented
4713
4714 "sha1"
4715 Not documented
4716
4717 Since: 2.12
4718
4719 SshHostKeyHash (Object)
4720
4721 "type" The hash algorithm used for the hash "hash"
4722 The expected hash value
4723
4724 Members:
4725
4726 "type: SshHostKeyCheckHashType"
4727 Not documented
4728
4729 "hash: string"
4730 Not documented
4731
4732 Since: 2.12
4733
4734 SshHostKeyCheck (Object)
4735
4736 Members:
4737
4738 "mode: SshHostKeyCheckMode"
4739 Not documented
4740
4741 The members of "SshHostKeyHash" when "mode" is "hash"
4742
4743 Since: 2.12
4744
4745 BlockdevOptionsSsh (Object)
4746
4747 Members:
4748
4749 "server: InetSocketAddress"
4750 host address
4751
4752 "path: string"
4753 path to the image on the host
4754
4755 "user: string" (optional)
4756 user as which to connect, defaults to current local user name
4757
4758 "host-key-check: SshHostKeyCheck" (optional)
4759 Defines how and what to check the host key against (default:
4760 known_hosts)
4761
4762 Since: 2.9
4763
4764 BlkdebugEvent (Enum)
4765
4766 Trigger events supported by blkdebug.
4767
4768 Values:
4769
4770 "l1_shrink_write_table"
4771 write zeros to the l1 table to shrink image. (since 2.11)
4772
4773 "l1_shrink_free_l2_clusters"
4774 discard the l2 tables. (since 2.11)
4775
4776 "cor_write"
4777 a write due to copy-on-read (since 2.11)
4778
4779 "cluster_alloc_space"
4780 an allocation of file space for a cluster (since 4.1)
4781
4782 "none"
4783 triggers once at creation of the blkdebug node (since 4.1)
4784
4785 "l1_update"
4786 Not documented
4787
4788 "l1_grow_alloc_table"
4789 Not documented
4790
4791 "l1_grow_write_table"
4792 Not documented
4793
4794 "l1_grow_activate_table"
4795 Not documented
4796
4797 "l2_load"
4798 Not documented
4799
4800 "l2_update"
4801 Not documented
4802
4803 "l2_update_compressed"
4804 Not documented
4805
4806 "l2_alloc_cow_read"
4807 Not documented
4808
4809 "l2_alloc_write"
4810 Not documented
4811
4812 "read_aio"
4813 Not documented
4814
4815 "read_backing_aio"
4816 Not documented
4817
4818 "read_compressed"
4819 Not documented
4820
4821 "write_aio"
4822 Not documented
4823
4824 "write_compressed"
4825 Not documented
4826
4827 "vmstate_load"
4828 Not documented
4829
4830 "vmstate_save"
4831 Not documented
4832
4833 "cow_read"
4834 Not documented
4835
4836 "cow_write"
4837 Not documented
4838
4839 "reftable_load"
4840 Not documented
4841
4842 "reftable_grow"
4843 Not documented
4844
4845 "reftable_update"
4846 Not documented
4847
4848 "refblock_load"
4849 Not documented
4850
4851 "refblock_update"
4852 Not documented
4853
4854 "refblock_update_part"
4855 Not documented
4856
4857 "refblock_alloc"
4858 Not documented
4859
4860 "refblock_alloc_hookup"
4861 Not documented
4862
4863 "refblock_alloc_write"
4864 Not documented
4865
4866 "refblock_alloc_write_blocks"
4867 Not documented
4868
4869 "refblock_alloc_write_table"
4870 Not documented
4871
4872 "refblock_alloc_switch_table"
4873 Not documented
4874
4875 "cluster_alloc"
4876 Not documented
4877
4878 "cluster_alloc_bytes"
4879 Not documented
4880
4881 "cluster_free"
4882 Not documented
4883
4884 "flush_to_os"
4885 Not documented
4886
4887 "flush_to_disk"
4888 Not documented
4889
4890 "pwritev_rmw_head"
4891 Not documented
4892
4893 "pwritev_rmw_after_head"
4894 Not documented
4895
4896 "pwritev_rmw_tail"
4897 Not documented
4898
4899 "pwritev_rmw_after_tail"
4900 Not documented
4901
4902 "pwritev"
4903 Not documented
4904
4905 "pwritev_zero"
4906 Not documented
4907
4908 "pwritev_done"
4909 Not documented
4910
4911 "empty_image_prepare"
4912 Not documented
4913
4914 Since: 2.9
4915
4916 BlkdebugIOType (Enum)
4917
4918 Kinds of I/O that blkdebug can inject errors in.
4919
4920 Values:
4921
4922 "read"
4923 .bdrv_co_preadv()
4924
4925 "write"
4926 .bdrv_co_pwritev()
4927
4928 "write-zeroes"
4929 .bdrv_co_pwrite_zeroes()
4930
4931 "discard"
4932 .bdrv_co_pdiscard()
4933
4934 "flush"
4935 .bdrv_co_flush_to_disk()
4936
4937 "block-status"
4938 .bdrv_co_block_status()
4939
4940 Since: 4.1
4941
4942 BlkdebugInjectErrorOptions (Object)
4943
4944 Describes a single error injection for blkdebug.
4945
4946 Members:
4947
4948 "event: BlkdebugEvent"
4949 trigger event
4950
4951 "state: int" (optional)
4952 the state identifier blkdebug needs to be in to actually trigger
4953 the event; defaults to "any"
4954
4955 "iotype: BlkdebugIOType" (optional)
4956 the type of I/O operations on which this error should be injected;
4957 defaults to "all read, write, write-zeroes, discard, and flush
4958 operations" (since: 4.1)
4959
4960 "errno: int" (optional)
4961 error identifier (errno) to be returned; defaults to EIO
4962
4963 "sector: int" (optional)
4964 specifies the sector index which has to be affected in order to
4965 actually trigger the event; defaults to "any sector"
4966
4967 "once: boolean" (optional)
4968 disables further events after this one has been triggered; defaults
4969 to false
4970
4971 "immediately: boolean" (optional)
4972 fail immediately; defaults to false
4973
4974 Since: 2.9
4975
4976 BlkdebugSetStateOptions (Object)
4977
4978 Describes a single state-change event for blkdebug.
4979
4980 Members:
4981
4982 "event: BlkdebugEvent"
4983 trigger event
4984
4985 "state: int" (optional)
4986 the current state identifier blkdebug needs to be in; defaults to
4987 "any"
4988
4989 "new_state: int"
4990 the state identifier blkdebug is supposed to assume if this event
4991 is triggered
4992
4993 Since: 2.9
4994
4995 BlockdevOptionsBlkdebug (Object)
4996
4997 Driver specific block device options for blkdebug.
4998
4999 Members:
5000
5001 "image: BlockdevRef"
5002 underlying raw block device (or image file)
5003
5004 "config: string" (optional)
5005 filename of the configuration file
5006
5007 "align: int" (optional)
5008 required alignment for requests in bytes, must be positive power of
5009 2, or 0 for default
5010
5011 "max-transfer: int" (optional)
5012 maximum size for I/O transfers in bytes, must be positive multiple
5013 of "align" and of the underlying file's request alignment (but need
5014 not be a power of 2), or 0 for default (since 2.10)
5015
5016 "opt-write-zero: int" (optional)
5017 preferred alignment for write zero requests in bytes, must be
5018 positive multiple of "align" and of the underlying file's request
5019 alignment (but need not be a power of 2), or 0 for default (since
5020 2.10)
5021
5022 "max-write-zero: int" (optional)
5023 maximum size for write zero requests in bytes, must be positive
5024 multiple of "align", of "opt-write-zero", and of the underlying
5025 file's request alignment (but need not be a power of 2), or 0 for
5026 default (since 2.10)
5027
5028 "opt-discard: int" (optional)
5029 preferred alignment for discard requests in bytes, must be positive
5030 multiple of "align" and of the underlying file's request alignment
5031 (but need not be a power of 2), or 0 for default (since 2.10)
5032
5033 "max-discard: int" (optional)
5034 maximum size for discard requests in bytes, must be positive
5035 multiple of "align", of "opt-discard", and of the underlying file's
5036 request alignment (but need not be a power of 2), or 0 for default
5037 (since 2.10)
5038
5039 "inject-error: array of BlkdebugInjectErrorOptions" (optional)
5040 array of error injection descriptions
5041
5042 "set-state: array of BlkdebugSetStateOptions" (optional)
5043 array of state-change descriptions
5044
5045 Since: 2.9
5046
5047 BlockdevOptionsBlklogwrites (Object)
5048
5049 Driver specific block device options for blklogwrites.
5050
5051 Members:
5052
5053 "file: BlockdevRef"
5054 block device
5055
5056 "log: BlockdevRef"
5057 block device used to log writes to "file"
5058
5059 "log-sector-size: int" (optional)
5060 sector size used in logging writes to "file", determines
5061 granularity of offsets and sizes of writes (default: 512)
5062
5063 "log-append: boolean" (optional)
5064 append to an existing log (default: false)
5065
5066 "log-super-update-interval: int" (optional)
5067 interval of write requests after which the log super block is
5068 updated to disk (default: 4096)
5069
5070 Since: 3.0
5071
5072 BlockdevOptionsBlkverify (Object)
5073
5074 Driver specific block device options for blkverify.
5075
5076 Members:
5077
5078 "test: BlockdevRef"
5079 block device to be tested
5080
5081 "raw: BlockdevRef"
5082 raw image used for verification
5083
5084 Since: 2.9
5085
5086 BlockdevOptionsBlkreplay (Object)
5087
5088 Driver specific block device options for blkreplay.
5089
5090 Members:
5091
5092 "image: BlockdevRef"
5093 disk image which should be controlled with blkreplay
5094
5095 Since: 4.2
5096
5097 QuorumReadPattern (Enum)
5098
5099 An enumeration of quorum read patterns.
5100
5101 Values:
5102
5103 "quorum"
5104 read all the children and do a quorum vote on reads
5105
5106 "fifo"
5107 read only from the first child that has not failed
5108
5109 Since: 2.9
5110
5111 BlockdevOptionsQuorum (Object)
5112
5113 Driver specific block device options for Quorum
5114
5115 Members:
5116
5117 "blkverify: boolean" (optional)
5118 true if the driver must print content mismatch set to false by
5119 default
5120
5121 "children: array of BlockdevRef"
5122 the children block devices to use
5123
5124 "vote-threshold: int"
5125 the vote limit under which a read will fail
5126
5127 "rewrite-corrupted: boolean" (optional)
5128 rewrite corrupted data when quorum is reached (Since 2.1)
5129
5130 "read-pattern: QuorumReadPattern" (optional)
5131 choose read pattern and set to quorum by default (Since 2.2)
5132
5133 Since: 2.9
5134
5135 BlockdevOptionsGluster (Object)
5136
5137 Driver specific block device options for Gluster
5138
5139 Members:
5140
5141 "volume: string"
5142 name of gluster volume where VM image resides
5143
5144 "path: string"
5145 absolute path to image file in gluster volume
5146
5147 "server: array of SocketAddress"
5148 gluster servers description
5149
5150 "debug: int" (optional)
5151 libgfapi log level (default '4' which is Error) (Since 2.8)
5152
5153 "logfile: string" (optional)
5154 libgfapi log file (default /dev/stderr) (Since 2.8)
5155
5156 Since: 2.9
5157
5158 IscsiTransport (Enum)
5159
5160 An enumeration of libiscsi transport types
5161
5162 Values:
5163
5164 "tcp"
5165 Not documented
5166
5167 "iser"
5168 Not documented
5169
5170 Since: 2.9
5171
5172 IscsiHeaderDigest (Enum)
5173
5174 An enumeration of header digests supported by libiscsi
5175
5176 Values:
5177
5178 "crc32c"
5179 Not documented
5180
5181 "none"
5182 Not documented
5183
5184 "crc32c-none"
5185 Not documented
5186
5187 "none-crc32c"
5188 Not documented
5189
5190 Since: 2.9
5191
5192 BlockdevOptionsIscsi (Object)
5193
5194 Members:
5195
5196 "transport: IscsiTransport"
5197 The iscsi transport type
5198
5199 "portal: string"
5200 The address of the iscsi portal
5201
5202 "target: string"
5203 The target iqn name
5204
5205 "lun: int" (optional)
5206 LUN to connect to. Defaults to 0.
5207
5208 "user: string" (optional)
5209 User name to log in with. If omitted, no CHAP authentication is
5210 performed.
5211
5212 "password-secret: string" (optional)
5213 The ID of a QCryptoSecret object providing the password for the
5214 login. This option is required if "user" is specified.
5215
5216 "initiator-name: string" (optional)
5217 The iqn name we want to identify to the target as. If this option
5218 is not specified, an initiator name is generated automatically.
5219
5220 "header-digest: IscsiHeaderDigest" (optional)
5221 The desired header digest. Defaults to none-crc32c.
5222
5223 "timeout: int" (optional)
5224 Timeout in seconds after which a request will timeout. 0 means no
5225 timeout and is the default.
5226
5227 Driver specific block device options for iscsi
5228
5229 Since: 2.9
5230
5231 RbdAuthMode (Enum)
5232
5233 Values:
5234
5235 "cephx"
5236 Not documented
5237
5238 "none"
5239 Not documented
5240
5241 Since: 3.0
5242
5243 BlockdevOptionsRbd (Object)
5244
5245 Members:
5246
5247 "pool: string"
5248 Ceph pool name.
5249
5250 "image: string"
5251 Image name in the Ceph pool.
5252
5253 "conf: string" (optional)
5254 path to Ceph configuration file. Values in the configuration file
5255 will be overridden by options specified via QAPI.
5256
5257 "snapshot: string" (optional)
5258 Ceph snapshot name.
5259
5260 "user: string" (optional)
5261 Ceph id name.
5262
5263 "auth-client-required: array of RbdAuthMode" (optional)
5264 Acceptable authentication modes. This maps to Ceph configuration
5265 option "auth_client_required". (Since 3.0)
5266
5267 "key-secret: string" (optional)
5268 ID of a QCryptoSecret object providing a key for cephx
5269 authentication. This maps to Ceph configuration option "key".
5270 (Since 3.0)
5271
5272 "server: array of InetSocketAddressBase" (optional)
5273 Monitor host address and port. This maps to the "mon_host" Ceph
5274 option.
5275
5276 Since: 2.9
5277
5278 BlockdevOptionsSheepdog (Object)
5279
5280 Driver specific block device options for sheepdog
5281
5282 Members:
5283
5284 "vdi: string"
5285 Virtual disk image name
5286
5287 "server: SocketAddress"
5288 The Sheepdog server to connect to
5289
5290 "snap-id: int" (optional)
5291 Snapshot ID
5292
5293 "tag: string" (optional)
5294 Snapshot tag name
5295
5296 Only one of "snap-id" and "tag" may be present.
5297
5298 Since: 2.9
5299
5300 ReplicationMode (Enum)
5301
5302 An enumeration of replication modes.
5303
5304 Values:
5305
5306 "primary"
5307 Primary mode, the vm's state will be sent to secondary QEMU.
5308
5309 "secondary"
5310 Secondary mode, receive the vm's state from primary QEMU.
5311
5312 Since: 2.9
5313
5314 If: "defined(CONFIG_REPLICATION)"
5315
5316 BlockdevOptionsReplication (Object)
5317
5318 Driver specific block device options for replication
5319
5320 Members:
5321
5322 "mode: ReplicationMode"
5323 the replication mode
5324
5325 "top-id: string" (optional)
5326 In secondary mode, node name or device ID of the root node who owns
5327 the replication node chain. Must not be given in primary mode.
5328
5329 The members of "BlockdevOptionsGenericFormat"
5330
5331 Since: 2.9
5332
5333 If: "defined(CONFIG_REPLICATION)"
5334
5335 NFSTransport (Enum)
5336
5337 An enumeration of NFS transport types
5338
5339 Values:
5340
5341 "inet"
5342 TCP transport
5343
5344 Since: 2.9
5345
5346 NFSServer (Object)
5347
5348 Captures the address of the socket
5349
5350 Members:
5351
5352 "type: NFSTransport"
5353 transport type used for NFS (only TCP supported)
5354
5355 "host: string"
5356 host address for NFS server
5357
5358 Since: 2.9
5359
5360 BlockdevOptionsNfs (Object)
5361
5362 Driver specific block device option for NFS
5363
5364 Members:
5365
5366 "server: NFSServer"
5367 host address
5368
5369 "path: string"
5370 path of the image on the host
5371
5372 "user: int" (optional)
5373 UID value to use when talking to the server (defaults to 65534 on
5374 Windows and getuid() on unix)
5375
5376 "group: int" (optional)
5377 GID value to use when talking to the server (defaults to 65534 on
5378 Windows and getgid() in unix)
5379
5380 "tcp-syn-count: int" (optional)
5381 number of SYNs during the session establishment (defaults to libnfs
5382 default)
5383
5384 "readahead-size: int" (optional)
5385 set the readahead size in bytes (defaults to libnfs default)
5386
5387 "page-cache-size: int" (optional)
5388 set the pagecache size in bytes (defaults to libnfs default)
5389
5390 "debug: int" (optional)
5391 set the NFS debug level (max 2) (defaults to libnfs default)
5392
5393 Since: 2.9
5394
5395 BlockdevOptionsCurlBase (Object)
5396
5397 Driver specific block device options shared by all protocols supported
5398 by the curl backend.
5399
5400 Members:
5401
5402 "url: string"
5403 URL of the image file
5404
5405 "readahead: int" (optional)
5406 Size of the read-ahead cache; must be a multiple of 512 (defaults
5407 to 256 kB)
5408
5409 "timeout: int" (optional)
5410 Timeout for connections, in seconds (defaults to 5)
5411
5412 "username: string" (optional)
5413 Username for authentication (defaults to none)
5414
5415 "password-secret: string" (optional)
5416 ID of a QCryptoSecret object providing a password for
5417 authentication (defaults to no password)
5418
5419 "proxy-username: string" (optional)
5420 Username for proxy authentication (defaults to none)
5421
5422 "proxy-password-secret: string" (optional)
5423 ID of a QCryptoSecret object providing a password for proxy
5424 authentication (defaults to no password)
5425
5426 Since: 2.9
5427
5428 BlockdevOptionsCurlHttp (Object)
5429
5430 Driver specific block device options for HTTP connections over the curl
5431 backend. URLs must start with "http://".
5432
5433 Members:
5434
5435 "cookie: string" (optional)
5436 List of cookies to set; format is "name1=content1; name2=content2;"
5437 as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5438
5439 "cookie-secret: string" (optional)
5440 ID of a QCryptoSecret object providing the cookie data in a secure
5441 way. See "cookie" for the format. (since 2.10)
5442
5443 The members of "BlockdevOptionsCurlBase"
5444
5445 Since: 2.9
5446
5447 BlockdevOptionsCurlHttps (Object)
5448
5449 Driver specific block device options for HTTPS connections over the
5450 curl backend. URLs must start with "https://".
5451
5452 Members:
5453
5454 "cookie: string" (optional)
5455 List of cookies to set; format is "name1=content1; name2=content2;"
5456 as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5457
5458 "sslverify: boolean" (optional)
5459 Whether to verify the SSL certificate's validity (defaults to true)
5460
5461 "cookie-secret: string" (optional)
5462 ID of a QCryptoSecret object providing the cookie data in a secure
5463 way. See "cookie" for the format. (since 2.10)
5464
5465 The members of "BlockdevOptionsCurlBase"
5466
5467 Since: 2.9
5468
5469 BlockdevOptionsCurlFtp (Object)
5470
5471 Driver specific block device options for FTP connections over the curl
5472 backend. URLs must start with "ftp://".
5473
5474 Members:
5475
5476 The members of "BlockdevOptionsCurlBase"
5477
5478 Since: 2.9
5479
5480 BlockdevOptionsCurlFtps (Object)
5481
5482 Driver specific block device options for FTPS connections over the curl
5483 backend. URLs must start with "ftps://".
5484
5485 Members:
5486
5487 "sslverify: boolean" (optional)
5488 Whether to verify the SSL certificate's validity (defaults to true)
5489
5490 The members of "BlockdevOptionsCurlBase"
5491
5492 Since: 2.9
5493
5494 BlockdevOptionsNbd (Object)
5495
5496 Driver specific block device options for NBD.
5497
5498 Members:
5499
5500 "server: SocketAddress"
5501 NBD server address
5502
5503 "export: string" (optional)
5504 export name
5505
5506 "tls-creds: string" (optional)
5507 TLS credentials ID
5508
5509 "x-dirty-bitmap: string" (optional)
5510 A "qemu:dirty-bitmap:NAME" string to query in place of traditional
5511 "base:allocation" block status (see NBD_OPT_LIST_META_CONTEXT in
5512 the NBD protocol) (since 3.0)
5513
5514 "reconnect-delay: int" (optional)
5515 On an unexpected disconnect, the nbd client tries to connect again
5516 until succeeding or encountering a serious error. During the first
5517 "reconnect-delay" seconds, all requests are paused and will be
5518 rerun on a successful reconnect. After that time, any delayed
5519 requests and all future requests before a successful reconnect will
5520 immediately fail. Default 0 (Since 4.2)
5521
5522 Since: 2.9
5523
5524 BlockdevOptionsRaw (Object)
5525
5526 Driver specific block device options for the raw driver.
5527
5528 Members:
5529
5530 "offset: int" (optional)
5531 position where the block device starts
5532
5533 "size: int" (optional)
5534 the assumed size of the device
5535
5536 The members of "BlockdevOptionsGenericFormat"
5537
5538 Since: 2.9
5539
5540 BlockdevOptionsVxHS (Object)
5541
5542 Driver specific block device options for VxHS
5543
5544 Members:
5545
5546 "vdisk-id: string"
5547 UUID of VxHS volume
5548
5549 "server: InetSocketAddressBase"
5550 vxhs server IP, port
5551
5552 "tls-creds: string" (optional)
5553 TLS credentials ID
5554
5555 Since: 2.10
5556
5557 BlockdevOptionsThrottle (Object)
5558
5559 Driver specific block device options for the throttle driver
5560
5561 Members:
5562
5563 "throttle-group: string"
5564 the name of the throttle-group object to use. It must already
5565 exist.
5566
5567 "file: BlockdevRef"
5568 reference to or definition of the data source block device
5569
5570 Since: 2.11
5571
5572 BlockdevOptions (Object)
5573
5574 Options for creating a block device. Many options are available for
5575 all block devices, independent of the block driver:
5576
5577 Members:
5578
5579 "driver: BlockdevDriver"
5580 block driver name
5581
5582 "node-name: string" (optional)
5583 the node name of the new node (Since 2.0). This option is required
5584 on the top level of blockdev-add. Valid node names start with an
5585 alphabetic character and may contain only alphanumeric characters,
5586 '-', '.' and '_'. Their maximum length is 31 characters.
5587
5588 "discard: BlockdevDiscardOptions" (optional)
5589 discard-related options (default: ignore)
5590
5591 "cache: BlockdevCacheOptions" (optional)
5592 cache-related options
5593
5594 "read-only: boolean" (optional)
5595 whether the block device should be read-only (default: false).
5596 Note that some block drivers support only read-only access, either
5597 generally or in certain configurations. In this case, the default
5598 value does not work and the option must be specified explicitly.
5599
5600 "auto-read-only: boolean" (optional)
5601 if true and "read-only" is false, QEMU may automatically decide not
5602 to open the image read-write as requested, but fall back to read-
5603 only instead (and switch between the modes later), e.g. depending
5604 on whether the image file is writable or whether a writing user is
5605 attached to the node (default: false, since 3.1)
5606
5607 "detect-zeroes: BlockdevDetectZeroesOptions" (optional)
5608 detect and optimize zero writes (Since 2.1) (default: off)
5609
5610 "force-share: boolean" (optional)
5611 force share all permission on added nodes. Requires
5612 read-only=true. (Since 2.10)
5613
5614 The members of "BlockdevOptionsBlkdebug" when "driver" is "blkdebug"
5615 The members of "BlockdevOptionsBlklogwrites" when "driver" is
5616 "blklogwrites"
5617 The members of "BlockdevOptionsBlkverify" when "driver" is "blkverify"
5618 The members of "BlockdevOptionsBlkreplay" when "driver" is "blkreplay"
5619 The members of "BlockdevOptionsGenericFormat" when "driver" is "bochs"
5620 The members of "BlockdevOptionsGenericFormat" when "driver" is "cloop"
5621 The members of "BlockdevOptionsGenericFormat" when "driver" is "copy-
5622 on-read"
5623 The members of "BlockdevOptionsGenericFormat" when "driver" is "dmg"
5624 The members of "BlockdevOptionsFile" when "driver" is "file"
5625 The members of "BlockdevOptionsCurlFtp" when "driver" is "ftp"
5626 The members of "BlockdevOptionsCurlFtps" when "driver" is "ftps"
5627 The members of "BlockdevOptionsGluster" when "driver" is "gluster"
5628 The members of "BlockdevOptionsFile" when "driver" is "host_cdrom"
5629 The members of "BlockdevOptionsFile" when "driver" is "host_device"
5630 The members of "BlockdevOptionsCurlHttp" when "driver" is "http"
5631 The members of "BlockdevOptionsCurlHttps" when "driver" is "https"
5632 The members of "BlockdevOptionsIscsi" when "driver" is "iscsi"
5633 The members of "BlockdevOptionsLUKS" when "driver" is "luks"
5634 The members of "BlockdevOptionsNbd" when "driver" is "nbd"
5635 The members of "BlockdevOptionsNfs" when "driver" is "nfs"
5636 The members of "BlockdevOptionsNull" when "driver" is "null-aio"
5637 The members of "BlockdevOptionsNull" when "driver" is "null-co"
5638 The members of "BlockdevOptionsNVMe" when "driver" is "nvme"
5639 The members of "BlockdevOptionsGenericFormat" when "driver" is
5640 "parallels"
5641 The members of "BlockdevOptionsQcow2" when "driver" is "qcow2"
5642 The members of "BlockdevOptionsQcow" when "driver" is "qcow"
5643 The members of "BlockdevOptionsGenericCOWFormat" when "driver" is "qed"
5644 The members of "BlockdevOptionsQuorum" when "driver" is "quorum"
5645 The members of "BlockdevOptionsRaw" when "driver" is "raw"
5646 The members of "BlockdevOptionsRbd" when "driver" is "rbd"
5647 The members of "BlockdevOptionsReplication" when "driver" is
5648 "replication" (If: "defined(CONFIG_REPLICATION)")
5649 The members of "BlockdevOptionsSheepdog" when "driver" is "sheepdog"
5650 The members of "BlockdevOptionsSsh" when "driver" is "ssh"
5651 The members of "BlockdevOptionsThrottle" when "driver" is "throttle"
5652 The members of "BlockdevOptionsGenericFormat" when "driver" is "vdi"
5653 The members of "BlockdevOptionsGenericFormat" when "driver" is "vhdx"
5654 The members of "BlockdevOptionsGenericCOWFormat" when "driver" is
5655 "vmdk"
5656 The members of "BlockdevOptionsGenericFormat" when "driver" is "vpc"
5657 The members of "BlockdevOptionsVVFAT" when "driver" is "vvfat"
5658 The members of "BlockdevOptionsVxHS" when "driver" is "vxhs"
5659
5660 Remaining options are determined by the block driver.
5661
5662 Since: 2.9
5663
5664 BlockdevRef (Alternate)
5665
5666 Reference to a block device.
5667
5668 Members:
5669
5670 "definition: BlockdevOptions"
5671 defines a new block device inline
5672
5673 "reference: string"
5674 references the ID of an existing block device
5675
5676 Since: 2.9
5677
5678 BlockdevRefOrNull (Alternate)
5679
5680 Reference to a block device.
5681
5682 Members:
5683
5684 "definition: BlockdevOptions"
5685 defines a new block device inline
5686
5687 "reference: string"
5688 references the ID of an existing block device. An empty string
5689 means that no block device should be referenced. Deprecated; use
5690 null instead.
5691
5692 "null: null"
5693 No block device should be referenced (since 2.10)
5694
5695 Since: 2.9
5696
5697 blockdev-add (Command) Creates a new block device. If the "id" option
5698 is given at the top level, a BlockBackend will be created; otherwise,
5699 "node-name" is mandatory at the top level and no BlockBackend will be
5700 created.
5701
5702 Arguments: the members of "BlockdevOptions"
5703
5704 Since: 2.9
5705
5706 Example:
5707
5708 1.
5709 -> { "execute": "blockdev-add",
5710 "arguments": {
5711 "driver": "qcow2",
5712 "node-name": "test1",
5713 "file": {
5714 "driver": "file",
5715 "filename": "test.qcow2"
5716 }
5717 }
5718 }
5719 <- { "return": {} }
5720
5721 2.
5722 -> { "execute": "blockdev-add",
5723 "arguments": {
5724 "driver": "qcow2",
5725 "node-name": "node0",
5726 "discard": "unmap",
5727 "cache": {
5728 "direct": true
5729 },
5730 "file": {
5731 "driver": "file",
5732 "filename": "/tmp/test.qcow2"
5733 },
5734 "backing": {
5735 "driver": "raw",
5736 "file": {
5737 "driver": "file",
5738 "filename": "/dev/fdset/4"
5739 }
5740 }
5741 }
5742 }
5743
5744 <- { "return": {} }
5745
5746 x-blockdev-reopen (Command) Reopens a block device using the given set
5747 of options. Any option not specified will be reset to its default value
5748 regardless of its previous status. If an option cannot be changed or a
5749 particular driver does not support reopening then the command will
5750 return an error.
5751
5752 The top-level "node-name" option (from BlockdevOptions) must be
5753 specified and is used to select the block device to be reopened. Other
5754 "node-name" options must be either omitted or set to the current name
5755 of the appropriate node. This command won't change any node name and
5756 any attempt to do it will result in an error.
5757
5758 In the case of options that refer to child nodes, the behavior of this
5759 command depends on the value:
5760
5761 1) A set of options (BlockdevOptions): the child is reopened with the
5762 specified set of options.
5763
5764 2) A reference to the current child: the child is reopened using its
5765 existing set of options.
5766
5767 3) A reference to a different node: the current child is replaced with
5768 the specified one.
5769
5770 4) NULL: the current child (if any) is detached.
5771
5772 Options (1) and (2) are supported in all cases, but at the moment only
5773 "backing" allows replacing or detaching an existing child.
5774
5775 Unlike with blockdev-add, the "backing" option must always be present
5776 unless the node being reopened does not have a backing file and its
5777 image does not have a default backing file name as part of its
5778 metadata.
5779
5780 Arguments: the members of "BlockdevOptions"
5781
5782 Since: 4.0
5783
5784 blockdev-del (Command) Deletes a block device that has been added
5785 using blockdev-add. The command will fail if the node is attached to a
5786 device or is otherwise being used.
5787
5788 Arguments:
5789
5790 "node-name: string"
5791 Name of the graph node to delete.
5792
5793 Since: 2.9
5794
5795 Example:
5796
5797 -> { "execute": "blockdev-add",
5798 "arguments": {
5799 "driver": "qcow2",
5800 "node-name": "node0",
5801 "file": {
5802 "driver": "file",
5803 "filename": "test.qcow2"
5804 }
5805 }
5806 }
5807 <- { "return": {} }
5808
5809 -> { "execute": "blockdev-del",
5810 "arguments": { "node-name": "node0" }
5811 }
5812 <- { "return": {} }
5813
5814 BlockdevCreateOptionsFile (Object)
5815
5816 Driver specific image creation options for file.
5817
5818 "filename" Filename for the new image file "size"
5819 Size of the virtual disk in bytes "preallocation" Preallocation mode
5820 for the new image (default: off; allowed values: off, falloc (if
5821 defined CONFIG_POSIX_FALLOCATE), full (if defined CONFIG_POSIX))
5822 "nocow" Turn off copy-on-write (valid only on btrfs;
5823 default: off)
5824
5825 Members:
5826
5827 "filename: string"
5828 Not documented
5829
5830 "size: int"
5831 Not documented
5832
5833 "preallocation: PreallocMode" (optional)
5834 Not documented
5835
5836 "nocow: boolean" (optional)
5837 Not documented
5838
5839 Since: 2.12
5840
5841 BlockdevCreateOptionsGluster (Object)
5842
5843 Driver specific image creation options for gluster.
5844
5845 "location" Where to store the new image file "size"
5846 Size of the virtual disk in bytes "preallocation" Preallocation mode
5847 for the new image (default: off; allowed values: off, falloc (if
5848 defined CONFIG_GLUSTERFS_FALLOCATE), full (if defined
5849 CONFIG_GLUSTERFS_ZEROFILL))
5850
5851 Members:
5852
5853 "location: BlockdevOptionsGluster"
5854 Not documented
5855
5856 "size: int"
5857 Not documented
5858
5859 "preallocation: PreallocMode" (optional)
5860 Not documented
5861
5862 Since: 2.12
5863
5864 BlockdevCreateOptionsLUKS (Object)
5865
5866 Driver specific image creation options for LUKS.
5867
5868 "file" Node to create the image format on "size"
5869 Size of the virtual disk in bytes "preallocation" Preallocation mode
5870 for the new image (since: 4.2) (default: off; allowed values: off,
5871 metadata, falloc, full)
5872
5873 Members:
5874
5875 "file: BlockdevRef"
5876 Not documented
5877
5878 "size: int"
5879 Not documented
5880
5881 "preallocation: PreallocMode" (optional)
5882 Not documented
5883
5884 The members of "QCryptoBlockCreateOptionsLUKS"
5885
5886 Since: 2.12
5887
5888 BlockdevCreateOptionsNfs (Object)
5889
5890 Driver specific image creation options for NFS.
5891
5892 "location" Where to store the new image file "size"
5893 Size of the virtual disk in bytes
5894
5895 Members:
5896
5897 "location: BlockdevOptionsNfs"
5898 Not documented
5899
5900 "size: int"
5901 Not documented
5902
5903 Since: 2.12
5904
5905 BlockdevCreateOptionsParallels (Object)
5906
5907 Driver specific image creation options for parallels.
5908
5909 "file" Node to create the image format on "size"
5910 Size of the virtual disk in bytes "cluster-size" Cluster size in
5911 bytes (default: 1 MB)
5912
5913 Members:
5914
5915 "file: BlockdevRef"
5916 Not documented
5917
5918 "size: int"
5919 Not documented
5920
5921 "cluster-size: int" (optional)
5922 Not documented
5923
5924 Since: 2.12
5925
5926 BlockdevCreateOptionsQcow (Object)
5927
5928 Driver specific image creation options for qcow.
5929
5930 "file" Node to create the image format on "size"
5931 Size of the virtual disk in bytes "backing-file" File name of the
5932 backing file if a backing file should be used "encrypt"
5933 Encryption options if the image should be encrypted
5934
5935 Members:
5936
5937 "file: BlockdevRef"
5938 Not documented
5939
5940 "size: int"
5941 Not documented
5942
5943 "backing-file: string" (optional)
5944 Not documented
5945
5946 "encrypt: QCryptoBlockCreateOptions" (optional)
5947 Not documented
5948
5949 Since: 2.12
5950
5951 BlockdevQcow2Version (Enum)
5952
5953 Values:
5954
5955 "v2"
5956 The original QCOW2 format as introduced in qemu 0.10 (version 2)
5957
5958 "v3"
5959 The extended QCOW2 format as introduced in qemu 1.1 (version 3)
5960
5961 Since: 2.12
5962
5963 BlockdevCreateOptionsQcow2 (Object)
5964
5965 Driver specific image creation options for qcow2.
5966
5967 "file" Node to create the image format on "data-file"
5968 Node to use as an external data file in which all guest data is stored
5969 so that only metadata remains in the qcow2 file (since: 4.0)
5970 "data-file-raw" True if the external data file must stay valid as a
5971 standalone (read-only) raw image without looking at qcow2 metadata
5972 (default: false; since: 4.0) "size" Size of the virtual
5973 disk in bytes "version" Compatibility level (default: v3)
5974 "backing-file" File name of the backing file if a backing file
5975 should be used "backing-fmt" Name of the block driver to use for
5976 the backing file "encrypt" Encryption options if the image
5977 should be encrypted "cluster-size" qcow2 cluster size in bytes
5978 (default: 65536) "preallocation" Preallocation mode for the new
5979 image (default: off; allowed values: off, falloc, full, metadata)
5980 "lazy-refcounts" True if refcounts may be updated lazily (default:
5981 off) "refcount-bits" Width of reference counts in bits (default: 16)
5982
5983 Members:
5984
5985 "file: BlockdevRef"
5986 Not documented
5987
5988 "data-file: BlockdevRef" (optional)
5989 Not documented
5990
5991 "data-file-raw: boolean" (optional)
5992 Not documented
5993
5994 "size: int"
5995 Not documented
5996
5997 "version: BlockdevQcow2Version" (optional)
5998 Not documented
5999
6000 "backing-file: string" (optional)
6001 Not documented
6002
6003 "backing-fmt: BlockdevDriver" (optional)
6004 Not documented
6005
6006 "encrypt: QCryptoBlockCreateOptions" (optional)
6007 Not documented
6008
6009 "cluster-size: int" (optional)
6010 Not documented
6011
6012 "preallocation: PreallocMode" (optional)
6013 Not documented
6014
6015 "lazy-refcounts: boolean" (optional)
6016 Not documented
6017
6018 "refcount-bits: int" (optional)
6019 Not documented
6020
6021 Since: 2.12
6022
6023 BlockdevCreateOptionsQed (Object)
6024
6025 Driver specific image creation options for qed.
6026
6027 "file" Node to create the image format on "size"
6028 Size of the virtual disk in bytes "backing-file" File name of the
6029 backing file if a backing file should be used "backing-fmt" Name
6030 of the block driver to use for the backing file "cluster-size"
6031 Cluster size in bytes (default: 65536) "table-size" L1/L2 table
6032 size (in clusters)
6033
6034 Members:
6035
6036 "file: BlockdevRef"
6037 Not documented
6038
6039 "size: int"
6040 Not documented
6041
6042 "backing-file: string" (optional)
6043 Not documented
6044
6045 "backing-fmt: BlockdevDriver" (optional)
6046 Not documented
6047
6048 "cluster-size: int" (optional)
6049 Not documented
6050
6051 "table-size: int" (optional)
6052 Not documented
6053
6054 Since: 2.12
6055
6056 BlockdevCreateOptionsRbd (Object)
6057
6058 Driver specific image creation options for rbd/Ceph.
6059
6060 "location" Where to store the new image file. This location
6061 cannot point to a snapshot. "size" Size of the virtual
6062 disk in bytes "cluster-size" RBD object size
6063
6064 Members:
6065
6066 "location: BlockdevOptionsRbd"
6067 Not documented
6068
6069 "size: int"
6070 Not documented
6071
6072 "cluster-size: int" (optional)
6073 Not documented
6074
6075 Since: 2.12
6076
6077 BlockdevVmdkSubformat (Enum)
6078
6079 Subformat options for VMDK images
6080
6081 Values:
6082
6083 "monolithicSparse"
6084 Single file image with sparse cluster allocation
6085
6086 "monolithicFlat"
6087 Single flat data image and a descriptor file
6088
6089 "twoGbMaxExtentSparse"
6090 Data is split into 2GB (per virtual LBA) sparse extent files, in
6091 addition to a descriptor file
6092
6093 "twoGbMaxExtentFlat"
6094 Data is split into 2GB (per virtual LBA) flat extent files, in
6095 addition to a descriptor file
6096
6097 "streamOptimized"
6098 Single file image sparse cluster allocation, optimized for
6099 streaming over network.
6100
6101 Since: 4.0
6102
6103 BlockdevVmdkAdapterType (Enum)
6104
6105 Adapter type info for VMDK images
6106
6107 Values:
6108
6109 "ide"
6110 Not documented
6111
6112 "buslogic"
6113 Not documented
6114
6115 "lsilogic"
6116 Not documented
6117
6118 "legacyESX"
6119 Not documented
6120
6121 Since: 4.0
6122
6123 BlockdevCreateOptionsVmdk (Object)
6124
6125 Driver specific image creation options for VMDK.
6126
6127 "file" Where to store the new image file. This refers to the
6128 image file for monolithcSparse and streamOptimized format, or the
6129 descriptor file for other formats. "size" Size of the virtual
6130 disk in bytes "extents" Where to store the data extents. Required
6131 for monolithcFlat, twoGbMaxExtentSparse and twoGbMaxExtentFlat formats.
6132 For monolithicFlat, only one entry is required; for twoGbMaxExtent*
6133 formats, the number of entries required is calculated as extent_number
6134 = virtual_size / 2GB. Providing more extents than will be used is an
6135 error. "subformat" The subformat of the VMDK image. Default:
6136 "monolithicSparse". "backing-file" The path of backing file. Default:
6137 no backing file is used. "adapter-type" The adapter type used to fill
6138 in the descriptor. Default: ide. "hwversion" Hardware version. The
6139 meaningful options are "4" or "6". Default: "4". "zeroed-grain"
6140 Whether to enable zeroed-grain feature for sparse subformats. Default:
6141 false.
6142
6143 Members:
6144
6145 "file: BlockdevRef"
6146 Not documented
6147
6148 "size: int"
6149 Not documented
6150
6151 "extents: array of BlockdevRef" (optional)
6152 Not documented
6153
6154 "subformat: BlockdevVmdkSubformat" (optional)
6155 Not documented
6156
6157 "backing-file: string" (optional)
6158 Not documented
6159
6160 "adapter-type: BlockdevVmdkAdapterType" (optional)
6161 Not documented
6162
6163 "hwversion: string" (optional)
6164 Not documented
6165
6166 "zeroed-grain: boolean" (optional)
6167 Not documented
6168
6169 Since: 4.0
6170
6171 SheepdogRedundancyType (Enum)
6172
6173 "full" Create a fully replicated vdi with x copies
6174 "erasure-coded" Create an erasure coded vdi with x data strips and y
6175 parity strips
6176
6177 Values:
6178
6179 "full"
6180 Not documented
6181
6182 "erasure-coded"
6183 Not documented
6184
6185 Since: 2.12
6186
6187 SheepdogRedundancyFull (Object)
6188
6189 "copies" Number of copies to use (between 1 and 31)
6190
6191 Members:
6192
6193 "copies: int"
6194 Not documented
6195
6196 Since: 2.12
6197
6198 SheepdogRedundancyErasureCoded (Object)
6199
6200 "data-strips" Number of data strips to use (one of {2,4,8,16})
6201 "parity-strips" Number of parity strips to use (between 1 and 15)
6202
6203 Members:
6204
6205 "data-strips: int"
6206 Not documented
6207
6208 "parity-strips: int"
6209 Not documented
6210
6211 Since: 2.12
6212
6213 SheepdogRedundancy (Object)
6214
6215 Members:
6216
6217 "type: SheepdogRedundancyType"
6218 Not documented
6219
6220 The members of "SheepdogRedundancyFull" when "type" is "full"
6221 The members of "SheepdogRedundancyErasureCoded" when "type" is
6222 "erasure-coded"
6223
6224 Since: 2.12
6225
6226 BlockdevCreateOptionsSheepdog (Object)
6227
6228 Driver specific image creation options for Sheepdog.
6229
6230 "location" Where to store the new image file "size"
6231 Size of the virtual disk in bytes "backing-file" File name of a
6232 base image "preallocation" Preallocation mode for the new image
6233 (default: off; allowed values: off, full) "redundancy" Redundancy
6234 of the image "object-size" Object size of the image
6235
6236 Members:
6237
6238 "location: BlockdevOptionsSheepdog"
6239 Not documented
6240
6241 "size: int"
6242 Not documented
6243
6244 "backing-file: string" (optional)
6245 Not documented
6246
6247 "preallocation: PreallocMode" (optional)
6248 Not documented
6249
6250 "redundancy: SheepdogRedundancy" (optional)
6251 Not documented
6252
6253 "object-size: int" (optional)
6254 Not documented
6255
6256 Since: 2.12
6257
6258 BlockdevCreateOptionsSsh (Object)
6259
6260 Driver specific image creation options for SSH.
6261
6262 "location" Where to store the new image file "size"
6263 Size of the virtual disk in bytes
6264
6265 Members:
6266
6267 "location: BlockdevOptionsSsh"
6268 Not documented
6269
6270 "size: int"
6271 Not documented
6272
6273 Since: 2.12
6274
6275 BlockdevCreateOptionsVdi (Object)
6276
6277 Driver specific image creation options for VDI.
6278
6279 "file" Node to create the image format on "size"
6280 Size of the virtual disk in bytes "preallocation" Preallocation mode
6281 for the new image (default: off; allowed values: off, metadata)
6282
6283 Members:
6284
6285 "file: BlockdevRef"
6286 Not documented
6287
6288 "size: int"
6289 Not documented
6290
6291 "preallocation: PreallocMode" (optional)
6292 Not documented
6293
6294 Since: 2.12
6295
6296 BlockdevVhdxSubformat (Enum)
6297
6298 Values:
6299
6300 "dynamic"
6301 Growing image file
6302
6303 "fixed"
6304 Preallocated fixed-size image file
6305
6306 Since: 2.12
6307
6308 BlockdevCreateOptionsVhdx (Object)
6309
6310 Driver specific image creation options for vhdx.
6311
6312 "file" Node to create the image format on "size"
6313 Size of the virtual disk in bytes "log-size" Log size in bytes,
6314 must be a multiple of 1 MB (default: 1 MB) "block-size" Block
6315 size in bytes, must be a multiple of 1 MB and not larger than 256 MB
6316 (default: automatically choose a block size depending on the image
6317 size) "subformat" vhdx subformat (default: dynamic)
6318 "block-state-zero" Force use of payload blocks of type 'ZERO'. Non-
6319 standard, but default. Do not set to 'off' when using 'qemu-img
6320 convert' with subformat=dynamic.
6321
6322 Members:
6323
6324 "file: BlockdevRef"
6325 Not documented
6326
6327 "size: int"
6328 Not documented
6329
6330 "log-size: int" (optional)
6331 Not documented
6332
6333 "block-size: int" (optional)
6334 Not documented
6335
6336 "subformat: BlockdevVhdxSubformat" (optional)
6337 Not documented
6338
6339 "block-state-zero: boolean" (optional)
6340 Not documented
6341
6342 Since: 2.12
6343
6344 BlockdevVpcSubformat (Enum)
6345
6346 Values:
6347
6348 "dynamic"
6349 Growing image file
6350
6351 "fixed"
6352 Preallocated fixed-size image file
6353
6354 Since: 2.12
6355
6356 BlockdevCreateOptionsVpc (Object)
6357
6358 Driver specific image creation options for vpc (VHD).
6359
6360 "file" Node to create the image format on "size"
6361 Size of the virtual disk in bytes "subformat" vhdx subformat
6362 (default: dynamic) "force-size" Force use of the exact byte size
6363 instead of rounding to the next size that can be represented in CHS
6364 geometry (default: false)
6365
6366 Members:
6367
6368 "file: BlockdevRef"
6369 Not documented
6370
6371 "size: int"
6372 Not documented
6373
6374 "subformat: BlockdevVpcSubformat" (optional)
6375 Not documented
6376
6377 "force-size: boolean" (optional)
6378 Not documented
6379
6380 Since: 2.12
6381
6382 BlockdevCreateOptions (Object)
6383
6384 Options for creating an image format on a given node.
6385
6386 "driver" block driver to create the image format
6387
6388 Members:
6389
6390 "driver: BlockdevDriver"
6391 Not documented
6392
6393 The members of "BlockdevCreateOptionsFile" when "driver" is "file"
6394 The members of "BlockdevCreateOptionsGluster" when "driver" is
6395 "gluster"
6396 The members of "BlockdevCreateOptionsLUKS" when "driver" is "luks"
6397 The members of "BlockdevCreateOptionsNfs" when "driver" is "nfs"
6398 The members of "BlockdevCreateOptionsParallels" when "driver" is
6399 "parallels"
6400 The members of "BlockdevCreateOptionsQcow" when "driver" is "qcow"
6401 The members of "BlockdevCreateOptionsQcow2" when "driver" is "qcow2"
6402 The members of "BlockdevCreateOptionsQed" when "driver" is "qed"
6403 The members of "BlockdevCreateOptionsRbd" when "driver" is "rbd"
6404 The members of "BlockdevCreateOptionsSheepdog" when "driver" is
6405 "sheepdog"
6406 The members of "BlockdevCreateOptionsSsh" when "driver" is "ssh"
6407 The members of "BlockdevCreateOptionsVdi" when "driver" is "vdi"
6408 The members of "BlockdevCreateOptionsVhdx" when "driver" is "vhdx"
6409 The members of "BlockdevCreateOptionsVmdk" when "driver" is "vmdk"
6410 The members of "BlockdevCreateOptionsVpc" when "driver" is "vpc"
6411
6412 Since: 2.12
6413
6414 blockdev-create (Command) Starts a job to create an image format on a
6415 given node. The job is automatically finalized, but a manual job-
6416 dismiss is required.
6417
6418 Arguments:
6419
6420 "job-id: string"
6421 Identifier for the newly created job.
6422
6423 "options: BlockdevCreateOptions"
6424 Options for the image creation.
6425
6426 Since: 3.0
6427
6428 blockdev-open-tray (Command) Opens a block device's tray. If there is
6429 a block driver state tree inserted as a medium, it will become
6430 inaccessible to the guest (but it will remain associated to the block
6431 device, so closing the tray will make it accessible again).
6432
6433 If the tray was already open before, this will be a no-op.
6434
6435 Once the tray opens, a DEVICE_TRAY_MOVED event is emitted. There are
6436 cases in which no such event will be generated, these include:
6437
6438 - if the guest has locked the tray, "force" is false and the guest
6439 does not respond to the eject request
6440
6441 - if the BlockBackend denoted by "device" does not have a guest
6442 device attached to it
6443
6444 - if the guest device does not have an actual tray
6445
6446 Arguments:
6447
6448 "device: string" (optional)
6449 Block device name (deprecated, use "id" instead)
6450
6451 "id: string" (optional)
6452 The name or QOM path of the guest device (since: 2.8)
6453
6454 "force: boolean" (optional)
6455 if false (the default), an eject request will be sent to the guest
6456 if it has locked the tray (and the tray will not be opened
6457 immediately); if true, the tray will be opened regardless of
6458 whether it is locked
6459
6460 Since: 2.5
6461
6462 Example:
6463
6464 -> { "execute": "blockdev-open-tray",
6465 "arguments": { "id": "ide0-1-0" } }
6466
6467 <- { "timestamp": { "seconds": 1418751016,
6468 "microseconds": 716996 },
6469 "event": "DEVICE_TRAY_MOVED",
6470 "data": { "device": "ide1-cd0",
6471 "id": "ide0-1-0",
6472 "tray-open": true } }
6473
6474 <- { "return": {} }
6475
6476 blockdev-close-tray (Command) Closes a block device's tray. If there
6477 is a block driver state tree associated with the block device (which is
6478 currently ejected), that tree will be loaded as the medium.
6479
6480 If the tray was already closed before, this will be a no-op.
6481
6482 Arguments:
6483
6484 "device: string" (optional)
6485 Block device name (deprecated, use "id" instead)
6486
6487 "id: string" (optional)
6488 The name or QOM path of the guest device (since: 2.8)
6489
6490 Since: 2.5
6491
6492 Example:
6493
6494 -> { "execute": "blockdev-close-tray",
6495 "arguments": { "id": "ide0-1-0" } }
6496
6497 <- { "timestamp": { "seconds": 1418751345,
6498 "microseconds": 272147 },
6499 "event": "DEVICE_TRAY_MOVED",
6500 "data": { "device": "ide1-cd0",
6501 "id": "ide0-1-0",
6502 "tray-open": false } }
6503
6504 <- { "return": {} }
6505
6506 blockdev-remove-medium (Command) Removes a medium (a block driver
6507 state tree) from a block device. That block device's tray must
6508 currently be open (unless there is no attached guest device).
6509
6510 If the tray is open and there is no medium inserted, this will be a no-
6511 op.
6512
6513 Arguments:
6514
6515 "id: string"
6516 The name or QOM path of the guest device
6517
6518 Since: 2.12
6519
6520 Example:
6521
6522 -> { "execute": "blockdev-remove-medium",
6523 "arguments": { "id": "ide0-1-0" } }
6524
6525 <- { "error": { "class": "GenericError",
6526 "desc": "Tray of device 'ide0-1-0' is not open" } }
6527
6528 -> { "execute": "blockdev-open-tray",
6529 "arguments": { "id": "ide0-1-0" } }
6530
6531 <- { "timestamp": { "seconds": 1418751627,
6532 "microseconds": 549958 },
6533 "event": "DEVICE_TRAY_MOVED",
6534 "data": { "device": "ide1-cd0",
6535 "id": "ide0-1-0",
6536 "tray-open": true } }
6537
6538 <- { "return": {} }
6539
6540 -> { "execute": "blockdev-remove-medium",
6541 "arguments": { "id": "ide0-1-0" } }
6542
6543 <- { "return": {} }
6544
6545 blockdev-insert-medium (Command) Inserts a medium (a block driver
6546 state tree) into a block device. That block device's tray must
6547 currently be open (unless there is no attached guest device) and there
6548 must be no medium inserted already.
6549
6550 Arguments:
6551
6552 "id: string"
6553 The name or QOM path of the guest device
6554
6555 "node-name: string"
6556 name of a node in the block driver state graph
6557
6558 Since: 2.12
6559
6560 Example:
6561
6562 -> { "execute": "blockdev-add",
6563 "arguments": {
6564 "node-name": "node0",
6565 "driver": "raw",
6566 "file": { "driver": "file",
6567 "filename": "fedora.iso" } } }
6568 <- { "return": {} }
6569
6570 -> { "execute": "blockdev-insert-medium",
6571 "arguments": { "id": "ide0-1-0",
6572 "node-name": "node0" } }
6573
6574 <- { "return": {} }
6575
6576 BlockdevChangeReadOnlyMode (Enum)
6577
6578 Specifies the new read-only mode of a block device subject to the
6579 "blockdev-change-medium" command.
6580
6581 Values:
6582
6583 "retain"
6584 Retains the current read-only mode
6585
6586 "read-only"
6587 Makes the device read-only
6588
6589 "read-write"
6590 Makes the device writable
6591
6592 Since: 2.3
6593
6594 blockdev-change-medium (Command) Changes the medium inserted into a
6595 block device by ejecting the current medium and loading a new image
6596 file which is inserted as the new medium (this command combines
6597 blockdev-open-tray, blockdev-remove-medium, blockdev-insert-medium and
6598 blockdev-close-tray).
6599
6600 Arguments:
6601
6602 "device: string" (optional)
6603 Block device name (deprecated, use "id" instead)
6604
6605 "id: string" (optional)
6606 The name or QOM path of the guest device (since: 2.8)
6607
6608 "filename: string"
6609 filename of the new image to be loaded
6610
6611 "format: string" (optional)
6612 format to open the new image with (defaults to the probed format)
6613
6614 "read-only-mode: BlockdevChangeReadOnlyMode" (optional)
6615 change the read-only mode of the device; defaults to 'retain'
6616
6617 Since: 2.5
6618
6619 Examples:
6620
6621 1. Change a removable medium
6622
6623 -> { "execute": "blockdev-change-medium",
6624 "arguments": { "id": "ide0-1-0",
6625 "filename": "/srv/images/Fedora-12-x86_64-DVD.iso",
6626 "format": "raw" } }
6627 <- { "return": {} }
6628
6629 2. Load a read-only medium into a writable drive
6630
6631 -> { "execute": "blockdev-change-medium",
6632 "arguments": { "id": "floppyA",
6633 "filename": "/srv/images/ro.img",
6634 "format": "raw",
6635 "read-only-mode": "retain" } }
6636
6637 <- { "error":
6638 { "class": "GenericError",
6639 "desc": "Could not open '/srv/images/ro.img': Permission denied" } }
6640
6641 -> { "execute": "blockdev-change-medium",
6642 "arguments": { "id": "floppyA",
6643 "filename": "/srv/images/ro.img",
6644 "format": "raw",
6645 "read-only-mode": "read-only" } }
6646
6647 <- { "return": {} }
6648
6649 BlockErrorAction (Enum)
6650
6651 An enumeration of action that has been taken when a DISK I/O occurs
6652
6653 Values:
6654
6655 "ignore"
6656 error has been ignored
6657
6658 "report"
6659 error has been reported to the device
6660
6661 "stop"
6662 error caused VM to be stopped
6663
6664 Since: 2.1
6665
6666 BLOCK_IMAGE_CORRUPTED (Event) Emitted when a disk image is being
6667 marked corrupt. The image can be identified by its device or node name.
6668 The 'device' field is always present for compatibility reasons, but it
6669 can be empty ("") if the image does not have a device name associated.
6670
6671 Arguments:
6672
6673 "device: string"
6674 device name. This is always present for compatibility reasons, but
6675 it can be empty ("") if the image does not have a device name
6676 associated.
6677
6678 "node-name: string" (optional)
6679 node name (Since: 2.4)
6680
6681 "msg: string"
6682 informative message for human consumption, such as the kind of
6683 corruption being detected. It should not be parsed by machine as it
6684 is not guaranteed to be stable
6685
6686 "offset: int" (optional)
6687 if the corruption resulted from an image access, this is the host's
6688 access offset into the image
6689
6690 "size: int" (optional)
6691 if the corruption resulted from an image access, this is the access
6692 size
6693
6694 "fatal: boolean"
6695 if set, the image is marked corrupt and therefore unusable after
6696 this event and must be repaired (Since 2.2; before, every
6697 BLOCK_IMAGE_CORRUPTED event was fatal)
6698
6699 Note: If action is "stop", a STOP event will eventually follow the
6700 BLOCK_IO_ERROR event.
6701
6702 Example:
6703
6704 <- { "event": "BLOCK_IMAGE_CORRUPTED",
6705 "data": { "device": "ide0-hd0", "node-name": "node0",
6706 "msg": "Prevented active L1 table overwrite", "offset": 196608,
6707 "size": 65536 },
6708 "timestamp": { "seconds": 1378126126, "microseconds": 966463 } }
6709
6710 Since: 1.7
6711
6712 BLOCK_IO_ERROR (Event) Emitted when a disk I/O error occurs
6713
6714 Arguments:
6715
6716 "device: string"
6717 device name. This is always present for compatibility reasons, but
6718 it can be empty ("") if the image does not have a device name
6719 associated.
6720
6721 "node-name: string" (optional)
6722 node name. Note that errors may be reported for the root node that
6723 is directly attached to a guest device rather than for the node
6724 where the error occurred. The node name is not present if the drive
6725 is empty. (Since: 2.8)
6726
6727 "operation: IoOperationType"
6728 I/O operation
6729
6730 "action: BlockErrorAction"
6731 action that has been taken
6732
6733 "nospace: boolean" (optional)
6734 true if I/O error was caused due to a no-space condition. This key
6735 is only present if query-block's io-status is present, please see
6736 query-block documentation for more information (since: 2.2)
6737
6738 "reason: string"
6739 human readable string describing the error cause. (This field is a
6740 debugging aid for humans, it should not be parsed by applications)
6741 (since: 2.2)
6742
6743 Note: If action is "stop", a STOP event will eventually follow the
6744 BLOCK_IO_ERROR event
6745
6746 Since: 0.13.0
6747
6748 Example:
6749
6750 <- { "event": "BLOCK_IO_ERROR",
6751 "data": { "device": "ide0-hd1",
6752 "node-name": "#block212",
6753 "operation": "write",
6754 "action": "stop" },
6755 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6756
6757 BLOCK_JOB_COMPLETED (Event) Emitted when a block job has completed
6758
6759 Arguments:
6760
6761 "type: JobType"
6762 job type
6763
6764 "device: string"
6765 The job identifier. Originally the device name but other values are
6766 allowed since QEMU 2.7
6767
6768 "len: int"
6769 maximum progress value
6770
6771 "offset: int"
6772 current progress value. On success this is equal to len. On
6773 failure this is less than len
6774
6775 "speed: int"
6776 rate limit, bytes per second
6777
6778 "error: string" (optional)
6779 error message. Only present on failure. This field contains a
6780 human-readable error message. There are no semantics other than
6781 that streaming has failed and clients should not try to interpret
6782 the error string
6783
6784 Since: 1.1
6785
6786 Example:
6787
6788 <- { "event": "BLOCK_JOB_COMPLETED",
6789 "data": { "type": "stream", "device": "virtio-disk0",
6790 "len": 10737418240, "offset": 10737418240,
6791 "speed": 0 },
6792 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6793
6794 BLOCK_JOB_CANCELLED (Event) Emitted when a block job has been
6795 cancelled
6796
6797 Arguments:
6798
6799 "type: JobType"
6800 job type
6801
6802 "device: string"
6803 The job identifier. Originally the device name but other values are
6804 allowed since QEMU 2.7
6805
6806 "len: int"
6807 maximum progress value
6808
6809 "offset: int"
6810 current progress value. On success this is equal to len. On
6811 failure this is less than len
6812
6813 "speed: int"
6814 rate limit, bytes per second
6815
6816 Since: 1.1
6817
6818 Example:
6819
6820 <- { "event": "BLOCK_JOB_CANCELLED",
6821 "data": { "type": "stream", "device": "virtio-disk0",
6822 "len": 10737418240, "offset": 134217728,
6823 "speed": 0 },
6824 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6825
6826 BLOCK_JOB_ERROR (Event) Emitted when a block job encounters an error
6827
6828 Arguments:
6829
6830 "device: string"
6831 The job identifier. Originally the device name but other values are
6832 allowed since QEMU 2.7
6833
6834 "operation: IoOperationType"
6835 I/O operation
6836
6837 "action: BlockErrorAction"
6838 action that has been taken
6839
6840 Since: 1.3
6841
6842 Example:
6843
6844 <- { "event": "BLOCK_JOB_ERROR",
6845 "data": { "device": "ide0-hd1",
6846 "operation": "write",
6847 "action": "stop" },
6848 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6849
6850 BLOCK_JOB_READY (Event) Emitted when a block job is ready to complete
6851
6852 Arguments:
6853
6854 "type: JobType"
6855 job type
6856
6857 "device: string"
6858 The job identifier. Originally the device name but other values are
6859 allowed since QEMU 2.7
6860
6861 "len: int"
6862 maximum progress value
6863
6864 "offset: int"
6865 current progress value. On success this is equal to len. On
6866 failure this is less than len
6867
6868 "speed: int"
6869 rate limit, bytes per second
6870
6871 Note: The "ready to complete" status is always reset by a
6872 "BLOCK_JOB_ERROR" event
6873
6874 Since: 1.3
6875
6876 Example:
6877
6878 <- { "event": "BLOCK_JOB_READY",
6879 "data": { "device": "drive0", "type": "mirror", "speed": 0,
6880 "len": 2097152, "offset": 2097152 }
6881 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6882
6883 BLOCK_JOB_PENDING (Event) Emitted when a block job is awaiting
6884 explicit authorization to finalize graph changes via
6885 "block-job-finalize". If this job is part of a transaction, it will not
6886 emit this event until the transaction has converged first.
6887
6888 Arguments:
6889
6890 "type: JobType"
6891 job type
6892
6893 "id: string"
6894 The job identifier.
6895
6896 Since: 2.12
6897
6898 Example:
6899
6900 <- { "event": "BLOCK_JOB_WAITING",
6901 "data": { "device": "drive0", "type": "mirror" },
6902 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6903
6904 PreallocMode (Enum)
6905
6906 Preallocation mode of QEMU image file
6907
6908 Values:
6909
6910 "off"
6911 no preallocation
6912
6913 "metadata"
6914 preallocate only for metadata
6915
6916 "falloc"
6917 like "full" preallocation but allocate disk space by
6918 posix_fallocate() rather than writing data.
6919
6920 "full"
6921 preallocate all data by writing it to the device to ensure disk
6922 space is really available. This data may or may not be zero,
6923 depending on the image format and storage. "full" preallocation
6924 also sets up metadata correctly.
6925
6926 Since: 2.2
6927
6928 BLOCK_WRITE_THRESHOLD (Event) Emitted when writes on block device
6929 reaches or exceeds the configured write threshold. For thin-provisioned
6930 devices, this means the device should be extended to avoid pausing for
6931 disk exhaustion. The event is one shot. Once triggered, it needs to be
6932 re-registered with another block-set-write-threshold command.
6933
6934 Arguments:
6935
6936 "node-name: string"
6937 graph node name on which the threshold was exceeded.
6938
6939 "amount-exceeded: int"
6940 amount of data which exceeded the threshold, in bytes.
6941
6942 "write-threshold: int"
6943 last configured threshold, in bytes.
6944
6945 Since: 2.3
6946
6947 block-set-write-threshold (Command) Change the write threshold for a
6948 block drive. An event will be delivered if a write to this block drive
6949 crosses the configured threshold. The threshold is an offset, thus
6950 must be non-negative. Default is no write threshold. Setting the
6951 threshold to zero disables it.
6952
6953 This is useful to transparently resize thin-provisioned drives without
6954 the guest OS noticing.
6955
6956 Arguments:
6957
6958 "node-name: string"
6959 graph node name on which the threshold must be set.
6960
6961 "write-threshold: int"
6962 configured threshold for the block device, bytes. Use 0 to disable
6963 the threshold.
6964
6965 Since: 2.3
6966
6967 Example:
6968
6969 -> { "execute": "block-set-write-threshold",
6970 "arguments": { "node-name": "mydev",
6971 "write-threshold": 17179869184 } }
6972 <- { "return": {} }
6973
6974 x-blockdev-change (Command) Dynamically reconfigure the block driver
6975 state graph. It can be used to add, remove, insert or replace a graph
6976 node. Currently only the Quorum driver implements this feature to add
6977 or remove its child. This is useful to fix a broken quorum child.
6978
6979 If "node" is specified, it will be inserted under "parent". "child" may
6980 not be specified in this case. If both "parent" and "child" are
6981 specified but "node" is not, "child" will be detached from "parent".
6982
6983 Arguments:
6984
6985 "parent: string"
6986 the id or name of the parent node.
6987
6988 "child: string" (optional)
6989 the name of a child under the given parent node.
6990
6991 "node: string" (optional)
6992 the name of the node that will be added.
6993
6994 Note: this command is experimental, and its API is not stable. It does
6995 not support all kinds of operations, all kinds of children, nor all
6996 block drivers.
6997
6998 FIXME Removing children from a quorum node means introducing gaps in
6999 the child indices. This cannot be represented in the 'children' list of
7000 BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename().
7001
7002 Warning: The data in a new quorum child MUST be consistent with that of
7003 the rest of the array.
7004
7005 Since: 2.7
7006
7007 Example:
7008
7009 1. Add a new node to a quorum
7010 -> { "execute": "blockdev-add",
7011 "arguments": {
7012 "driver": "raw",
7013 "node-name": "new_node",
7014 "file": { "driver": "file",
7015 "filename": "test.raw" } } }
7016 <- { "return": {} }
7017 -> { "execute": "x-blockdev-change",
7018 "arguments": { "parent": "disk1",
7019 "node": "new_node" } }
7020 <- { "return": {} }
7021
7022 2. Delete a quorum's node
7023 -> { "execute": "x-blockdev-change",
7024 "arguments": { "parent": "disk1",
7025 "child": "children.1" } }
7026 <- { "return": {} }
7027
7028 x-blockdev-set-iothread (Command) Move "node" and its children into
7029 the "iothread". If "iothread" is null then move "node" and its
7030 children into the main loop.
7031
7032 The node must not be attached to a BlockBackend.
7033
7034 Arguments:
7035
7036 "node-name: string"
7037 the name of the block driver node
7038
7039 "iothread: StrOrNull"
7040 the name of the IOThread object or null for the main loop
7041
7042 "force: boolean" (optional)
7043 true if the node and its children should be moved when a
7044 BlockBackend is already attached
7045
7046 Note: this command is experimental and intended for test cases that
7047 need control over IOThreads only.
7048
7049 Since: 2.12
7050
7051 Example:
7052
7053 1. Move a node into an IOThread
7054 -> { "execute": "x-blockdev-set-iothread",
7055 "arguments": { "node-name": "disk1",
7056 "iothread": "iothread0" } }
7057 <- { "return": {} }
7058
7059 2. Move a node into the main loop
7060 -> { "execute": "x-blockdev-set-iothread",
7061 "arguments": { "node-name": "disk1",
7062 "iothread": null } }
7063 <- { "return": {} }
7064
7065 Additional block stuff (VM related)
7066
7067 BiosAtaTranslation (Enum)
7068
7069 Policy that BIOS should use to interpret cylinder/head/sector
7070 addresses. Note that Bochs BIOS and SeaBIOS will not actually
7071 translate logical CHS to physical; instead, they will use logical block
7072 addressing.
7073
7074 Values:
7075
7076 "auto"
7077 If cylinder/heads/sizes are passed, choose between none and LBA
7078 depending on the size of the disk. If they are not passed, choose
7079 none if QEMU can guess that the disk had 16 or fewer heads, large
7080 if QEMU can guess that the disk had 131072 or fewer tracks across
7081 all heads (i.e. cylinders*heads<131072), otherwise LBA.
7082
7083 "none"
7084 The physical disk geometry is equal to the logical geometry.
7085
7086 "lba"
7087 Assume 63 sectors per track and one of 16, 32, 64, 128 or 255 heads
7088 (if fewer than 255 are enough to cover the whole disk with 1024
7089 cylinders/head). The number of cylinders/head is then computed
7090 based on the number of sectors and heads.
7091
7092 "large"
7093 The number of cylinders per head is scaled down to 1024 by
7094 correspondingly scaling up the number of heads.
7095
7096 "rechs"
7097 Same as "large", but first convert a 16-head geometry to 15-head,
7098 by proportionally scaling up the number of cylinders/head.
7099
7100 Since: 2.0
7101
7102 FloppyDriveType (Enum)
7103
7104 Type of Floppy drive to be emulated by the Floppy Disk Controller.
7105
7106 Values:
7107
7108 144 1.44MB 3.5" drive
7109
7110 288 2.88MB 3.5" drive
7111
7112 120 1.2MB 5.25" drive
7113
7114 "none"
7115 No drive connected
7116
7117 "auto"
7118 Automatically determined by inserted media at boot
7119
7120 Since: 2.6
7121
7122 BlockdevSnapshotInternal (Object)
7123
7124 Members:
7125
7126 "device: string"
7127 the device name or node-name of a root node to generate the
7128 snapshot from
7129
7130 "name: string"
7131 the name of the internal snapshot to be created
7132
7133 Notes: In transaction, if "name" is empty, or any snapshot matching
7134 "name" exists, the operation will fail. Only some image formats support
7135 it, for example, qcow2, rbd, and sheepdog.
7136
7137 Since: 1.7
7138
7139 PRManagerInfo (Object)
7140
7141 Information about a persistent reservation manager
7142
7143 Members:
7144
7145 "id: string"
7146 the identifier of the persistent reservation manager
7147
7148 "connected: boolean"
7149 true if the persistent reservation manager is connected to the
7150 underlying storage or helper
7151
7152 Since: 3.0
7153
7154 query-pr-managers (Command) Returns a list of information about each
7155 persistent reservation manager.
7156
7157 Returns: a list of "PRManagerInfo" for each persistent reservation
7158 manager
7159
7160 Since: 3.0
7161
7162 blockdev-snapshot-internal-sync (Command) Synchronously take an
7163 internal snapshot of a block device, when the format of the image used
7164 supports it. If the name is an empty string, or a snapshot with name
7165 already exists, the operation will fail.
7166
7167 For the arguments, see the documentation of BlockdevSnapshotInternal.
7168
7169 Returns: nothing on success
7170
7171 If "device" is not a valid block device, GenericError
7172
7173 If any snapshot matching "name" exists, or "name" is empty,
7174 GenericError
7175
7176 If the format of the image used does not support it,
7177 BlockFormatFeatureNotSupported
7178
7179 Since: 1.7
7180
7181 Example:
7182
7183 -> { "execute": "blockdev-snapshot-internal-sync",
7184 "arguments": { "device": "ide-hd0",
7185 "name": "snapshot0" }
7186 }
7187 <- { "return": {} }
7188
7189 blockdev-snapshot-delete-internal-sync (Command) Synchronously delete
7190 an internal snapshot of a block device, when the format of the image
7191 used support it. The snapshot is identified by name or id or both. One
7192 of the name or id is required. Return SnapshotInfo for the successfully
7193 deleted snapshot.
7194
7195 Arguments:
7196
7197 "device: string"
7198 the device name or node-name of a root node to delete the snapshot
7199 from
7200
7201 "id: string" (optional)
7202 optional the snapshot's ID to be deleted
7203
7204 "name: string" (optional)
7205 optional the snapshot's name to be deleted
7206
7207 Returns: SnapshotInfo on success If "device" is not a valid block
7208 device, GenericError If snapshot not found, GenericError If the format
7209 of the image used does not support it, BlockFormatFeatureNotSupported
7210 If "id" and "name" are both not specified, GenericError
7211
7212 Since: 1.7
7213
7214 Example:
7215
7216 -> { "execute": "blockdev-snapshot-delete-internal-sync",
7217 "arguments": { "device": "ide-hd0",
7218 "name": "snapshot0" }
7219 }
7220 <- { "return": {
7221 "id": "1",
7222 "name": "snapshot0",
7223 "vm-state-size": 0,
7224 "date-sec": 1000012,
7225 "date-nsec": 10,
7226 "vm-clock-sec": 100,
7227 "vm-clock-nsec": 20
7228 }
7229 }
7230
7231 eject (Command) Ejects a device from a removable drive.
7232
7233 Arguments:
7234
7235 "device: string" (optional)
7236 Block device name (deprecated, use "id" instead)
7237
7238 "id: string" (optional)
7239 The name or QOM path of the guest device (since: 2.8)
7240
7241 "force: boolean" (optional)
7242 If true, eject regardless of whether the drive is locked. If not
7243 specified, the default value is false.
7244
7245 Returns: Nothing on success
7246
7247 If "device" is not a valid block device, DeviceNotFound
7248
7249 Notes: Ejecting a device with no media results in success
7250
7251 Since: 0.14.0
7252
7253 Example:
7254
7255 -> { "execute": "eject", "arguments": { "id": "ide1-0-1" } }
7256 <- { "return": {} }
7257
7258 nbd-server-start (Command) Start an NBD server listening on the given
7259 host and port. Block devices can then be exported using
7260 "nbd-server-add". The NBD server will present them as named exports;
7261 for example, another QEMU instance could refer to them as
7262 "nbd:HOST:PORT:exportname=NAME".
7263
7264 Arguments:
7265
7266 "addr: SocketAddressLegacy"
7267 Address on which to listen.
7268
7269 "tls-creds: string" (optional)
7270 ID of the TLS credentials object (since 2.6).
7271
7272 "tls-authz: string" (optional)
7273 ID of the QAuthZ authorization object used to validate the client's
7274 x509 distinguished name. This object is is only resolved at time of
7275 use, so can be deleted and recreated on the fly while the NBD
7276 server is active. If missing, it will default to denying access
7277 (since 4.0).
7278
7279 Returns: error if the server is already running.
7280
7281 Since: 1.3.0
7282
7283 nbd-server-add (Command) Export a block node to QEMU's embedded NBD
7284 server.
7285
7286 Arguments:
7287
7288 "device: string"
7289 The device name or node name of the node to be exported
7290
7291 "name: string" (optional)
7292 Export name. If unspecified, the "device" parameter is used as the
7293 export name. (Since 2.12)
7294
7295 "writable: boolean" (optional)
7296 Whether clients should be able to write to the device via the NBD
7297 connection (default false).
7298
7299 "bitmap: string" (optional)
7300 Also export the dirty bitmap reachable from "device", so the NBD
7301 client can use NBD_OPT_SET_META_CONTEXT with
7302 "qemu:dirty-bitmap:NAME" to inspect the bitmap. (since 4.0)
7303
7304 Returns: error if the server is not running, or export with the same
7305 name already exists.
7306
7307 Since: 1.3.0
7308
7309 NbdServerRemoveMode (Enum)
7310
7311 Mode for removing an NBD export.
7312
7313 Values:
7314
7315 "safe"
7316 Remove export if there are no existing connections, fail otherwise.
7317
7318 "hard"
7319 Drop all connections immediately and remove export.
7320
7321 Potential additional modes to be added in the future:
7322
7323 hide: Just hide export from new clients, leave existing connections as
7324 is. Remove export after all clients are disconnected.
7325
7326 soft: Hide export from new clients, answer with ESHUTDOWN for all
7327 further requests from existing clients.
7328
7329 Since: 2.12
7330
7331 nbd-server-remove (Command) Remove NBD export by name.
7332
7333 Arguments:
7334
7335 "name: string"
7336 Export name.
7337
7338 "mode: NbdServerRemoveMode" (optional)
7339 Mode of command operation. See "NbdServerRemoveMode" description.
7340 Default is 'safe'.
7341
7342 Returns: error if
7343
7344 - the server is not running
7345
7346 - export is not found
7347
7348 - mode is 'safe' and there are existing connections
7349
7350 Since: 2.12
7351
7352 nbd-server-stop (Command) Stop QEMU's embedded NBD server, and
7353 unregister all devices previously added via "nbd-server-add".
7354
7355 Since: 1.3.0
7356
7357 DEVICE_TRAY_MOVED (Event) Emitted whenever the tray of a removable
7358 device is moved by the guest or by HMP/QMP commands
7359
7360 Arguments:
7361
7362 "device: string"
7363 Block device name. This is always present for compatibility
7364 reasons, but it can be empty ("") if the image does not have a
7365 device name associated.
7366
7367 "id: string"
7368 The name or QOM path of the guest device (since 2.8)
7369
7370 "tray-open: boolean"
7371 true if the tray has been opened or false if it has been closed
7372
7373 Since: 1.1
7374
7375 Example:
7376
7377 <- { "event": "DEVICE_TRAY_MOVED",
7378 "data": { "device": "ide1-cd0",
7379 "id": "/machine/unattached/device[22]",
7380 "tray-open": true
7381 },
7382 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
7383
7384 PR_MANAGER_STATUS_CHANGED (Event) Emitted whenever the connected
7385 status of a persistent reservation manager changes.
7386
7387 Arguments:
7388
7389 "id: string"
7390 The id of the PR manager object
7391
7392 "connected: boolean"
7393 true if the PR manager is connected to a backend
7394
7395 Since: 3.0
7396
7397 Example:
7398
7399 <- { "event": "PR_MANAGER_STATUS_CHANGED",
7400 "data": { "id": "pr-helper0",
7401 "connected": true
7402 },
7403 "timestamp": { "seconds": 1519840375, "microseconds": 450486 } }
7404
7405 QuorumOpType (Enum)
7406
7407 An enumeration of the quorum operation types
7408
7409 Values:
7410
7411 "read"
7412 read operation
7413
7414 "write"
7415 write operation
7416
7417 "flush"
7418 flush operation
7419
7420 Since: 2.6
7421
7422 QUORUM_FAILURE (Event) Emitted by the Quorum block driver if it fails
7423 to establish a quorum
7424
7425 Arguments:
7426
7427 "reference: string"
7428 device name if defined else node name
7429
7430 "sector-num: int"
7431 number of the first sector of the failed read operation
7432
7433 "sectors-count: int"
7434 failed read operation sector count
7435
7436 Note: This event is rate-limited.
7437
7438 Since: 2.0
7439
7440 Example:
7441
7442 <- { "event": "QUORUM_FAILURE",
7443 "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
7444 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7445
7446 QUORUM_REPORT_BAD (Event) Emitted to report a corruption of a Quorum
7447 file
7448
7449 Arguments:
7450
7451 "type: QuorumOpType"
7452 quorum operation type (Since 2.6)
7453
7454 "error: string" (optional)
7455 error message. Only present on failure. This field contains a
7456 human-readable error message. There are no semantics other than
7457 that the block layer reported an error and clients should not try
7458 to interpret the error string.
7459
7460 "node-name: string"
7461 the graph node name of the block driver state
7462
7463 "sector-num: int"
7464 number of the first sector of the failed read operation
7465
7466 "sectors-count: int"
7467 failed read operation sector count
7468
7469 Note: This event is rate-limited.
7470
7471 Since: 2.0
7472
7473 Example:
7474
7475 1. Read operation
7476
7477 { "event": "QUORUM_REPORT_BAD",
7478 "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
7479 "type": "read" },
7480 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7481
7482 2. Flush operation
7483
7484 { "event": "QUORUM_REPORT_BAD",
7485 "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
7486 "type": "flush", "error": "Broken pipe" },
7487 "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
7488
7489 Character devices
7490 ChardevInfo (Object)
7491
7492 Information about a character device.
7493
7494 Members:
7495
7496 "label: string"
7497 the label of the character device
7498
7499 "filename: string"
7500 the filename of the character device
7501
7502 "frontend-open: boolean"
7503 shows whether the frontend device attached to this backend (eg.
7504 with the chardev=... option) is in open or closed state (since 2.1)
7505
7506 Notes: "filename" is encoded using the QEMU command line character
7507 device encoding. See the QEMU man page for details.
7508
7509 Since: 0.14.0
7510
7511 query-chardev (Command) Returns information about current character
7512 devices.
7513
7514 Returns: a list of "ChardevInfo"
7515
7516 Since: 0.14.0
7517
7518 Example:
7519
7520 -> { "execute": "query-chardev" }
7521 <- {
7522 "return": [
7523 {
7524 "label": "charchannel0",
7525 "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server",
7526 "frontend-open": false
7527 },
7528 {
7529 "label": "charmonitor",
7530 "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server",
7531 "frontend-open": true
7532 },
7533 {
7534 "label": "charserial0",
7535 "filename": "pty:/dev/pts/2",
7536 "frontend-open": true
7537 }
7538 ]
7539 }
7540
7541 ChardevBackendInfo (Object)
7542
7543 Information about a character device backend
7544
7545 Members:
7546
7547 "name: string"
7548 The backend name
7549
7550 Since: 2.0
7551
7552 query-chardev-backends (Command) Returns information about character
7553 device backends.
7554
7555 Returns: a list of "ChardevBackendInfo"
7556
7557 Since: 2.0
7558
7559 Example:
7560
7561 -> { "execute": "query-chardev-backends" }
7562 <- {
7563 "return":[
7564 {
7565 "name":"udp"
7566 },
7567 {
7568 "name":"tcp"
7569 },
7570 {
7571 "name":"unix"
7572 },
7573 {
7574 "name":"spiceport"
7575 }
7576 ]
7577 }
7578
7579 DataFormat (Enum)
7580
7581 An enumeration of data format.
7582
7583 Values:
7584
7585 "utf8"
7586 Data is a UTF-8 string (RFC 3629)
7587
7588 "base64"
7589 Data is Base64 encoded binary (RFC 3548)
7590
7591 Since: 1.4
7592
7593 ringbuf-write (Command) Write to a ring buffer character device.
7594
7595 Arguments:
7596
7597 "device: string"
7598 the ring buffer character device name
7599
7600 "data: string"
7601 data to write
7602
7603 "format: DataFormat" (optional)
7604 data encoding (default 'utf8').
7605
7606 - base64: data must be base64 encoded text. Its binary decoding
7607 gets written.
7608
7609 - utf8: data's UTF-8 encoding is written
7610
7611 - data itself is always Unicode regardless of format, like any
7612 other string.
7613
7614 Returns: Nothing on success
7615
7616 Since: 1.4
7617
7618 Example:
7619
7620 -> { "execute": "ringbuf-write",
7621 "arguments": { "device": "foo",
7622 "data": "abcdefgh",
7623 "format": "utf8" } }
7624 <- { "return": {} }
7625
7626 ringbuf-read (Command) Read from a ring buffer character device.
7627
7628 Arguments:
7629
7630 "device: string"
7631 the ring buffer character device name
7632
7633 "size: int"
7634 how many bytes to read at most
7635
7636 "format: DataFormat" (optional)
7637 data encoding (default 'utf8').
7638
7639 - base64: the data read is returned in base64 encoding.
7640
7641 - utf8: the data read is interpreted as UTF-8. Bug: can screw up
7642 when the buffer contains invalid UTF-8 sequences, NUL
7643 characters, after the ring buffer lost data, and when reading
7644 stops because the size limit is reached.
7645
7646 - The return value is always Unicode regardless of format, like
7647 any other string.
7648
7649 Returns: data read from the device
7650
7651 Since: 1.4
7652
7653 Example:
7654
7655 -> { "execute": "ringbuf-read",
7656 "arguments": { "device": "foo",
7657 "size": 1000,
7658 "format": "utf8" } }
7659 <- { "return": "abcdefgh" }
7660
7661 ChardevCommon (Object)
7662
7663 Configuration shared across all chardev backends
7664
7665 Members:
7666
7667 "logfile: string" (optional)
7668 The name of a logfile to save output
7669
7670 "logappend: boolean" (optional)
7671 true to append instead of truncate (default to false to truncate)
7672
7673 Since: 2.6
7674
7675 ChardevFile (Object)
7676
7677 Configuration info for file chardevs.
7678
7679 Members:
7680
7681 "in: string" (optional)
7682 The name of the input file
7683
7684 "out: string"
7685 The name of the output file
7686
7687 "append: boolean" (optional)
7688 Open the file in append mode (default false to truncate) (Since
7689 2.6)
7690
7691 The members of "ChardevCommon"
7692
7693 Since: 1.4
7694
7695 ChardevHostdev (Object)
7696
7697 Configuration info for device and pipe chardevs.
7698
7699 Members:
7700
7701 "device: string"
7702 The name of the special file for the device, i.e. /dev/ttyS0 on
7703 Unix or COM1: on Windows
7704
7705 The members of "ChardevCommon"
7706
7707 Since: 1.4
7708
7709 ChardevSocket (Object)
7710
7711 Configuration info for (stream) socket chardevs.
7712
7713 Members:
7714
7715 "addr: SocketAddressLegacy"
7716 socket address to listen on (server=true) or connect to
7717 (server=false)
7718
7719 "tls-creds: string" (optional)
7720 the ID of the TLS credentials object (since 2.6)
7721
7722 "tls-authz: string" (optional)
7723 the ID of the QAuthZ authorization object against which the
7724 client's x509 distinguished name will be validated. This object is
7725 only resolved at time of use, so can be deleted and recreated on
7726 the fly while the chardev server is active. If missing, it will
7727 default to denying access (since 4.0)
7728
7729 "server: boolean" (optional)
7730 create server socket (default: true)
7731
7732 "wait: boolean" (optional)
7733 wait for incoming connection on server sockets (default: false).
7734
7735 "nodelay: boolean" (optional)
7736 set TCP_NODELAY socket option (default: false)
7737
7738 "telnet: boolean" (optional)
7739 enable telnet protocol on server sockets (default: false)
7740
7741 "tn3270: boolean" (optional)
7742 enable tn3270 protocol on server sockets (default: false) (Since:
7743 2.10)
7744
7745 "websocket: boolean" (optional)
7746 enable websocket protocol on server sockets (default: false)
7747 (Since: 3.1)
7748
7749 "reconnect: int" (optional)
7750 For a client socket, if a socket is disconnected, then attempt a
7751 reconnect after the given number of seconds. Setting this to zero
7752 disables this function. (default: 0) (Since: 2.2)
7753
7754 The members of "ChardevCommon"
7755
7756 Since: 1.4
7757
7758 ChardevUdp (Object)
7759
7760 Configuration info for datagram socket chardevs.
7761
7762 Members:
7763
7764 "remote: SocketAddressLegacy"
7765 remote address
7766
7767 "local: SocketAddressLegacy" (optional)
7768 local address
7769
7770 The members of "ChardevCommon"
7771
7772 Since: 1.5
7773
7774 ChardevMux (Object)
7775
7776 Configuration info for mux chardevs.
7777
7778 Members:
7779
7780 "chardev: string"
7781 name of the base chardev.
7782
7783 The members of "ChardevCommon"
7784
7785 Since: 1.5
7786
7787 ChardevStdio (Object)
7788
7789 Configuration info for stdio chardevs.
7790
7791 Members:
7792
7793 "signal: boolean" (optional)
7794 Allow signals (such as SIGINT triggered by ^C) be delivered to
7795 qemu. Default: true in -nographic mode, false otherwise.
7796
7797 The members of "ChardevCommon"
7798
7799 Since: 1.5
7800
7801 ChardevSpiceChannel (Object)
7802
7803 Configuration info for spice vm channel chardevs.
7804
7805 Members:
7806
7807 "type: string"
7808 kind of channel (for example vdagent).
7809
7810 The members of "ChardevCommon"
7811
7812 Since: 1.5
7813
7814 If: "defined(CONFIG_SPICE)"
7815
7816 ChardevSpicePort (Object)
7817
7818 Configuration info for spice port chardevs.
7819
7820 Members:
7821
7822 "fqdn: string"
7823 name of the channel (see docs/spice-port-fqdn.txt)
7824
7825 The members of "ChardevCommon"
7826
7827 Since: 1.5
7828
7829 If: "defined(CONFIG_SPICE)"
7830
7831 ChardevVC (Object)
7832
7833 Configuration info for virtual console chardevs.
7834
7835 Members:
7836
7837 "width: int" (optional)
7838 console width, in pixels
7839
7840 "height: int" (optional)
7841 console height, in pixels
7842
7843 "cols: int" (optional)
7844 console width, in chars
7845
7846 "rows: int" (optional)
7847 console height, in chars
7848
7849 The members of "ChardevCommon"
7850
7851 Since: 1.5
7852
7853 ChardevRingbuf (Object)
7854
7855 Configuration info for ring buffer chardevs.
7856
7857 Members:
7858
7859 "size: int" (optional)
7860 ring buffer size, must be power of two, default is 65536
7861
7862 The members of "ChardevCommon"
7863
7864 Since: 1.5
7865
7866 ChardevBackend (Object)
7867
7868 Configuration info for the new chardev backend.
7869
7870 Members:
7871
7872 "type"
7873 One of "file", "serial", "parallel", "pipe", "socket", "udp",
7874 "pty", "null", "mux", "msmouse", "wctablet", "braille", "testdev",
7875 "stdio", "console", "spicevmc", "spiceport", "vc", "ringbuf",
7876 "memory"
7877
7878 "data: ChardevFile" when "type" is "file"
7879 "data: ChardevHostdev" when "type" is "serial"
7880 "data: ChardevHostdev" when "type" is "parallel"
7881 "data: ChardevHostdev" when "type" is "pipe"
7882 "data: ChardevSocket" when "type" is "socket"
7883 "data: ChardevUdp" when "type" is "udp"
7884 "data: ChardevCommon" when "type" is "pty"
7885 "data: ChardevCommon" when "type" is "null"
7886 "data: ChardevMux" when "type" is "mux"
7887 "data: ChardevCommon" when "type" is "msmouse"
7888 "data: ChardevCommon" when "type" is "wctablet"
7889 "data: ChardevCommon" when "type" is "braille"
7890 "data: ChardevCommon" when "type" is "testdev"
7891 "data: ChardevStdio" when "type" is "stdio"
7892 "data: ChardevCommon" when "type" is "console"
7893 "data: ChardevSpiceChannel" when "type" is "spicevmc" (If:
7894 "defined(CONFIG_SPICE)")
7895 "data: ChardevSpicePort" when "type" is "spiceport" (If:
7896 "defined(CONFIG_SPICE)")
7897 "data: ChardevVC" when "type" is "vc"
7898 "data: ChardevRingbuf" when "type" is "ringbuf"
7899 "data: ChardevRingbuf" when "type" is "memory"
7900
7901 Since: 1.4 (testdev since 2.2, wctablet since 2.9)
7902
7903 ChardevReturn (Object)
7904
7905 Return info about the chardev backend just created.
7906
7907 Members:
7908
7909 "pty: string" (optional)
7910 name of the slave pseudoterminal device, present if and only if a
7911 chardev of type 'pty' was created
7912
7913 Since: 1.4
7914
7915 chardev-add (Command) Add a character device backend
7916
7917 Arguments:
7918
7919 "id: string"
7920 the chardev's ID, must be unique
7921
7922 "backend: ChardevBackend"
7923 backend type and parameters
7924
7925 Returns: ChardevReturn.
7926
7927 Since: 1.4
7928
7929 Example:
7930
7931 -> { "execute" : "chardev-add",
7932 "arguments" : { "id" : "foo",
7933 "backend" : { "type" : "null", "data" : {} } } }
7934 <- { "return": {} }
7935
7936 -> { "execute" : "chardev-add",
7937 "arguments" : { "id" : "bar",
7938 "backend" : { "type" : "file",
7939 "data" : { "out" : "/tmp/bar.log" } } } }
7940 <- { "return": {} }
7941
7942 -> { "execute" : "chardev-add",
7943 "arguments" : { "id" : "baz",
7944 "backend" : { "type" : "pty", "data" : {} } } }
7945 <- { "return": { "pty" : "/dev/pty/42" } }
7946
7947 chardev-change (Command) Change a character device backend
7948
7949 Arguments:
7950
7951 "id: string"
7952 the chardev's ID, must exist
7953
7954 "backend: ChardevBackend"
7955 new backend type and parameters
7956
7957 Returns: ChardevReturn.
7958
7959 Since: 2.10
7960
7961 Example:
7962
7963 -> { "execute" : "chardev-change",
7964 "arguments" : { "id" : "baz",
7965 "backend" : { "type" : "pty", "data" : {} } } }
7966 <- { "return": { "pty" : "/dev/pty/42" } }
7967
7968 -> {"execute" : "chardev-change",
7969 "arguments" : {
7970 "id" : "charchannel2",
7971 "backend" : {
7972 "type" : "socket",
7973 "data" : {
7974 "addr" : {
7975 "type" : "unix" ,
7976 "data" : {
7977 "path" : "/tmp/charchannel2.socket"
7978 }
7979 },
7980 "server" : true,
7981 "wait" : false }}}}
7982 <- {"return": {}}
7983
7984 chardev-remove (Command) Remove a character device backend
7985
7986 Arguments:
7987
7988 "id: string"
7989 the chardev's ID, must exist and not be in use
7990
7991 Returns: Nothing on success
7992
7993 Since: 1.4
7994
7995 Example:
7996
7997 -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
7998 <- { "return": {} }
7999
8000 chardev-send-break (Command) Send a break to a character device
8001
8002 Arguments:
8003
8004 "id: string"
8005 the chardev's ID, must exist
8006
8007 Returns: Nothing on success
8008
8009 Since: 2.10
8010
8011 Example:
8012
8013 -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
8014 <- { "return": {} }
8015
8016 VSERPORT_CHANGE (Event) Emitted when the guest opens or closes a
8017 virtio-serial port.
8018
8019 Arguments:
8020
8021 "id: string"
8022 device identifier of the virtio-serial port
8023
8024 "open: boolean"
8025 true if the guest has opened the virtio-serial port
8026
8027 Since: 2.1
8028
8029 Example:
8030
8031 <- { "event": "VSERPORT_CHANGE",
8032 "data": { "id": "channel0", "open": true },
8033 "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
8034
8035 Dump guest memory
8036 DumpGuestMemoryFormat (Enum)
8037
8038 An enumeration of guest-memory-dump's format.
8039
8040 Values:
8041
8042 "elf"
8043 elf format
8044
8045 "kdump-zlib"
8046 kdump-compressed format with zlib-compressed
8047
8048 "kdump-lzo"
8049 kdump-compressed format with lzo-compressed
8050
8051 "kdump-snappy"
8052 kdump-compressed format with snappy-compressed
8053
8054 "win-dmp"
8055 Windows full crashdump format, can be used instead of ELF
8056 converting (since 2.13)
8057
8058 Since: 2.0
8059
8060 dump-guest-memory (Command) Dump guest's memory to vmcore. It is a
8061 synchronous operation that can take very long depending on the amount
8062 of guest memory.
8063
8064 Arguments:
8065
8066 "paging: boolean"
8067 if true, do paging to get guest's memory mapping. This allows using
8068 gdb to process the core file.
8069
8070 IMPORTANT: this option can make QEMU allocate several gigabytes of
8071 RAM. This can happen for a large guest, or a malicious guest
8072 pretending to be large.
8073
8074 Also, paging=true has the following limitations:
8075
8076 1. The guest may be in a catastrophic state or can have corrupted
8077 memory, which cannot be trusted
8078
8079 2. The guest can be in real-mode even if paging is enabled. For
8080 example, the guest uses ACPI to sleep, and ACPI sleep state
8081 goes in real-mode
8082
8083 3. Currently only supported on i386 and x86_64.
8084
8085 "protocol: string"
8086 the filename or file descriptor of the vmcore. The supported
8087 protocols are:
8088
8089 1. file: the protocol starts with "file:", and the following
8090 string is the file's path.
8091
8092 2. fd: the protocol starts with "fd:", and the following string is
8093 the fd's name.
8094
8095 "detach: boolean" (optional)
8096 if true, QMP will return immediately rather than waiting for the
8097 dump to finish. The user can track progress using "query-dump".
8098 (since 2.6).
8099
8100 "begin: int" (optional)
8101 if specified, the starting physical address.
8102
8103 "length: int" (optional)
8104 if specified, the memory size, in bytes. If you don't want to dump
8105 all guest's memory, please specify the start "begin" and "length"
8106
8107 "format: DumpGuestMemoryFormat" (optional)
8108 if specified, the format of guest memory dump. But non-elf format
8109 is conflict with paging and filter, ie. "paging", "begin" and
8110 "length" is not allowed to be specified with non-elf "format" at
8111 the same time (since 2.0)
8112
8113 Note: All boolean arguments default to false
8114
8115 Returns: nothing on success
8116
8117 Since: 1.2
8118
8119 Example:
8120
8121 -> { "execute": "dump-guest-memory",
8122 "arguments": { "protocol": "fd:dump" } }
8123 <- { "return": {} }
8124
8125 DumpStatus (Enum)
8126
8127 Describe the status of a long-running background guest memory dump.
8128
8129 Values:
8130
8131 "none"
8132 no dump-guest-memory has started yet.
8133
8134 "active"
8135 there is one dump running in background.
8136
8137 "completed"
8138 the last dump has finished successfully.
8139
8140 "failed"
8141 the last dump has failed.
8142
8143 Since: 2.6
8144
8145 DumpQueryResult (Object)
8146
8147 The result format for 'query-dump'.
8148
8149 Members:
8150
8151 "status: DumpStatus"
8152 enum of "DumpStatus", which shows current dump status
8153
8154 "completed: int"
8155 bytes written in latest dump (uncompressed)
8156
8157 "total: int"
8158 total bytes to be written in latest dump (uncompressed)
8159
8160 Since: 2.6
8161
8162 query-dump (Command) Query latest dump status.
8163
8164 Returns: A "DumpStatus" object showing the dump status.
8165
8166 Since: 2.6
8167
8168 Example:
8169
8170 -> { "execute": "query-dump" }
8171 <- { "return": { "status": "active", "completed": 1024000,
8172 "total": 2048000 } }
8173
8174 DUMP_COMPLETED (Event) Emitted when background dump has completed
8175
8176 Arguments:
8177
8178 "result: DumpQueryResult"
8179 final dump status
8180
8181 "error: string" (optional)
8182 human-readable error string that provides hint on why dump failed.
8183 Only presents on failure. The user should not try to interpret the
8184 error string.
8185
8186 Since: 2.6
8187
8188 Example:
8189
8190 { "event": "DUMP_COMPLETED",
8191 "data": {"result": {"total": 1090650112, "status": "completed",
8192 "completed": 1090650112} } }
8193
8194 DumpGuestMemoryCapability (Object)
8195
8196 A list of the available formats for dump-guest-memory
8197
8198 Members:
8199
8200 "formats: array of DumpGuestMemoryFormat"
8201 Not documented
8202
8203 Since: 2.0
8204
8205 query-dump-guest-memory-capability (Command) Returns the available
8206 formats for dump-guest-memory
8207
8208 Returns: A "DumpGuestMemoryCapability" object listing available formats
8209 for dump-guest-memory
8210
8211 Since: 2.0
8212
8213 Example:
8214
8215 -> { "execute": "query-dump-guest-memory-capability" }
8216 <- { "return": { "formats":
8217 ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] }
8218
8219 Net devices
8220 set_link (Command) Sets the link status of a virtual network adapter.
8221
8222 Arguments:
8223
8224 "name: string"
8225 the device name of the virtual network adapter
8226
8227 "up: boolean"
8228 true to set the link status to be up
8229
8230 Returns: Nothing on success If "name" is not a valid network device,
8231 DeviceNotFound
8232
8233 Since: 0.14.0
8234
8235 Notes: Not all network adapters support setting link status. This
8236 command will succeed even if the network adapter does not support link
8237 status notification.
8238
8239 Example:
8240
8241 -> { "execute": "set_link",
8242 "arguments": { "name": "e1000.0", "up": false } }
8243 <- { "return": {} }
8244
8245 netdev_add (Command) Add a network backend.
8246
8247 Arguments:
8248
8249 "type: string"
8250 the type of network backend. Possible values are listed in
8251 NetClientDriver (excluding 'none' and 'nic')
8252
8253 "id: string"
8254 the name of the new network backend
8255
8256 Additional arguments depend on the type.
8257
8258 TODO: This command effectively bypasses QAPI completely due to its
8259 "additional arguments" business. It shouldn't have been added to the
8260 schema in this form. It should be qapified properly, or replaced by a
8261 properly qapified command.
8262
8263 Since: 0.14.0
8264
8265 Returns: Nothing on success If "type" is not a valid network backend,
8266 DeviceNotFound
8267
8268 Example:
8269
8270 -> { "execute": "netdev_add",
8271 "arguments": { "type": "user", "id": "netdev1",
8272 "dnssearch": "example.org" } }
8273 <- { "return": {} }
8274
8275 netdev_del (Command) Remove a network backend.
8276
8277 Arguments:
8278
8279 "id: string"
8280 the name of the network backend to remove
8281
8282 Returns: Nothing on success If "id" is not a valid network backend,
8283 DeviceNotFound
8284
8285 Since: 0.14.0
8286
8287 Example:
8288
8289 -> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
8290 <- { "return": {} }
8291
8292 NetLegacyNicOptions (Object)
8293
8294 Create a new Network Interface Card.
8295
8296 Members:
8297
8298 "netdev: string" (optional)
8299 id of -netdev to connect to
8300
8301 "macaddr: string" (optional)
8302 MAC address
8303
8304 "model: string" (optional)
8305 device model (e1000, rtl8139, virtio etc.)
8306
8307 "addr: string" (optional)
8308 PCI device address
8309
8310 "vectors: int" (optional)
8311 number of MSI-x vectors, 0 to disable MSI-X
8312
8313 Since: 1.2
8314
8315 NetdevUserOptions (Object)
8316
8317 Use the user mode network stack which requires no administrator
8318 privilege to run.
8319
8320 Members:
8321
8322 "hostname: string" (optional)
8323 client hostname reported by the builtin DHCP server
8324
8325 "restrict: boolean" (optional)
8326 isolate the guest from the host
8327
8328 "ipv4: boolean" (optional)
8329 whether to support IPv4, default true for enabled (since 2.6)
8330
8331 "ipv6: boolean" (optional)
8332 whether to support IPv6, default true for enabled (since 2.6)
8333
8334 "ip: string" (optional)
8335 legacy parameter, use net= instead
8336
8337 "net: string" (optional)
8338 IP network address that the guest will see, in the form
8339 addr[/netmask] The netmask is optional, and can be either in the
8340 form a.b.c.d or as a number of valid top-most bits. Default is
8341 10.0.2.0/24.
8342
8343 "host: string" (optional)
8344 guest-visible address of the host
8345
8346 "tftp: string" (optional)
8347 root directory of the built-in TFTP server
8348
8349 "bootfile: string" (optional)
8350 BOOTP filename, for use with tftp=
8351
8352 "dhcpstart: string" (optional)
8353 the first of the 16 IPs the built-in DHCP server can assign
8354
8355 "dns: string" (optional)
8356 guest-visible address of the virtual nameserver
8357
8358 "dnssearch: array of String" (optional)
8359 list of DNS suffixes to search, passed as DHCP option to the guest
8360
8361 "domainname: string" (optional)
8362 guest-visible domain name of the virtual nameserver (since 3.0)
8363
8364 "ipv6-prefix: string" (optional)
8365 IPv6 network prefix (default is fec0::) (since 2.6). The network
8366 prefix is given in the usual hexadecimal IPv6 address notation.
8367
8368 "ipv6-prefixlen: int" (optional)
8369 IPv6 network prefix length (default is 64) (since 2.6)
8370
8371 "ipv6-host: string" (optional)
8372 guest-visible IPv6 address of the host (since 2.6)
8373
8374 "ipv6-dns: string" (optional)
8375 guest-visible IPv6 address of the virtual nameserver (since 2.6)
8376
8377 "smb: string" (optional)
8378 root directory of the built-in SMB server
8379
8380 "smbserver: string" (optional)
8381 IP address of the built-in SMB server
8382
8383 "hostfwd: array of String" (optional)
8384 redirect incoming TCP or UDP host connections to guest endpoints
8385
8386 "guestfwd: array of String" (optional)
8387 forward guest TCP connections
8388
8389 "tftp-server-name: string" (optional)
8390 RFC2132 "TFTP server name" string (Since 3.1)
8391
8392 Since: 1.2
8393
8394 NetdevTapOptions (Object)
8395
8396 Used to configure a host TAP network interface backend.
8397
8398 Members:
8399
8400 "ifname: string" (optional)
8401 interface name
8402
8403 "fd: string" (optional)
8404 file descriptor of an already opened tap
8405
8406 "fds: string" (optional)
8407 multiple file descriptors of already opened multiqueue capable tap
8408
8409 "script: string" (optional)
8410 script to initialize the interface
8411
8412 "downscript: string" (optional)
8413 script to shut down the interface
8414
8415 "br: string" (optional)
8416 bridge name (since 2.8)
8417
8418 "helper: string" (optional)
8419 command to execute to configure bridge
8420
8421 "sndbuf: int" (optional)
8422 send buffer limit. Understands [TGMKkb] suffixes.
8423
8424 "vnet_hdr: boolean" (optional)
8425 enable the IFF_VNET_HDR flag on the tap interface
8426
8427 "vhost: boolean" (optional)
8428 enable vhost-net network accelerator
8429
8430 "vhostfd: string" (optional)
8431 file descriptor of an already opened vhost net device
8432
8433 "vhostfds: string" (optional)
8434 file descriptors of multiple already opened vhost net devices
8435
8436 "vhostforce: boolean" (optional)
8437 vhost on for non-MSIX virtio guests
8438
8439 "queues: int" (optional)
8440 number of queues to be created for multiqueue capable tap
8441
8442 "poll-us: int" (optional)
8443 maximum number of microseconds that could be spent on busy polling
8444 for tap (since 2.7)
8445
8446 Since: 1.2
8447
8448 NetdevSocketOptions (Object)
8449
8450 Socket netdevs are used to establish a network connection to another
8451 QEMU virtual machine via a TCP socket.
8452
8453 Members:
8454
8455 "fd: string" (optional)
8456 file descriptor of an already opened socket
8457
8458 "listen: string" (optional)
8459 port number, and optional hostname, to listen on
8460
8461 "connect: string" (optional)
8462 port number, and optional hostname, to connect to
8463
8464 "mcast: string" (optional)
8465 UDP multicast address and port number
8466
8467 "localaddr: string" (optional)
8468 source address and port for multicast and udp packets
8469
8470 "udp: string" (optional)
8471 UDP unicast address and port number
8472
8473 Since: 1.2
8474
8475 NetdevL2TPv3Options (Object)
8476
8477 Configure an Ethernet over L2TPv3 tunnel.
8478
8479 Members:
8480
8481 "src: string"
8482 source address
8483
8484 "dst: string"
8485 destination address
8486
8487 "srcport: string" (optional)
8488 source port - mandatory for udp, optional for ip
8489
8490 "dstport: string" (optional)
8491 destination port - mandatory for udp, optional for ip
8492
8493 "ipv6: boolean" (optional)
8494 force the use of ipv6
8495
8496 "udp: boolean" (optional)
8497 use the udp version of l2tpv3 encapsulation
8498
8499 "cookie64: boolean" (optional)
8500 use 64 bit coookies
8501
8502 "counter: boolean" (optional)
8503 have sequence counter
8504
8505 "pincounter: boolean" (optional)
8506 pin sequence counter to zero - workaround for buggy implementations
8507 or networks with packet reorder
8508
8509 "txcookie: int" (optional)
8510 32 or 64 bit transmit cookie
8511
8512 "rxcookie: int" (optional)
8513 32 or 64 bit receive cookie
8514
8515 "txsession: int"
8516 32 bit transmit session
8517
8518 "rxsession: int" (optional)
8519 32 bit receive session - if not specified set to the same value as
8520 transmit
8521
8522 "offset: int" (optional)
8523 additional offset - allows the insertion of additional application-
8524 specific data before the packet payload
8525
8526 Since: 2.1
8527
8528 NetdevVdeOptions (Object)
8529
8530 Connect to a vde switch running on the host.
8531
8532 Members:
8533
8534 "sock: string" (optional)
8535 socket path
8536
8537 "port: int" (optional)
8538 port number
8539
8540 "group: string" (optional)
8541 group owner of socket
8542
8543 "mode: int" (optional)
8544 permissions for socket
8545
8546 Since: 1.2
8547
8548 NetdevBridgeOptions (Object)
8549
8550 Connect a host TAP network interface to a host bridge device.
8551
8552 Members:
8553
8554 "br: string" (optional)
8555 bridge name
8556
8557 "helper: string" (optional)
8558 command to execute to configure bridge
8559
8560 Since: 1.2
8561
8562 NetdevHubPortOptions (Object)
8563
8564 Connect two or more net clients through a software hub.
8565
8566 Members:
8567
8568 "hubid: int"
8569 hub identifier number
8570
8571 "netdev: string" (optional)
8572 used to connect hub to a netdev instead of a device (since 2.12)
8573
8574 Since: 1.2
8575
8576 NetdevNetmapOptions (Object)
8577
8578 Connect a client to a netmap-enabled NIC or to a VALE switch port
8579
8580 Members:
8581
8582 "ifname: string"
8583 Either the name of an existing network interface supported by
8584 netmap, or the name of a VALE port (created on the fly). A VALE
8585 port name is in the form 'valeXXX:YYY', where XXX and YYY are non-
8586 negative integers. XXX identifies a switch and YYY identifies a
8587 port of the switch. VALE ports having the same XXX are therefore
8588 connected to the same switch.
8589
8590 "devname: string" (optional)
8591 path of the netmap device (default: '/dev/netmap').
8592
8593 Since: 2.0
8594
8595 NetdevVhostUserOptions (Object)
8596
8597 Vhost-user network backend
8598
8599 Members:
8600
8601 "chardev: string"
8602 name of a unix socket chardev
8603
8604 "vhostforce: boolean" (optional)
8605 vhost on for non-MSIX virtio guests (default: false).
8606
8607 "queues: int" (optional)
8608 number of queues to be created for multiqueue vhost-user (default:
8609 1) (Since 2.5)
8610
8611 Since: 2.1
8612
8613 NetClientDriver (Enum)
8614
8615 Available netdev drivers.
8616
8617 Values:
8618
8619 "none"
8620 Not documented
8621
8622 "nic"
8623 Not documented
8624
8625 "user"
8626 Not documented
8627
8628 "tap"
8629 Not documented
8630
8631 "l2tpv3"
8632 Not documented
8633
8634 "socket"
8635 Not documented
8636
8637 "vde"
8638 Not documented
8639
8640 "bridge"
8641 Not documented
8642
8643 "hubport"
8644 Not documented
8645
8646 "netmap"
8647 Not documented
8648
8649 "vhost-user"
8650 Not documented
8651
8652 Since: 2.7
8653
8654 'dump': dropped in 2.12
8655
8656 Netdev (Object)
8657
8658 Captures the configuration of a network device.
8659
8660 Members:
8661
8662 "id: string"
8663 identifier for monitor commands.
8664
8665 "type: NetClientDriver"
8666 Specify the driver used for interpreting remaining arguments.
8667
8668 The members of "NetLegacyNicOptions" when "type" is "nic"
8669 The members of "NetdevUserOptions" when "type" is "user"
8670 The members of "NetdevTapOptions" when "type" is "tap"
8671 The members of "NetdevL2TPv3Options" when "type" is "l2tpv3"
8672 The members of "NetdevSocketOptions" when "type" is "socket"
8673 The members of "NetdevVdeOptions" when "type" is "vde"
8674 The members of "NetdevBridgeOptions" when "type" is "bridge"
8675 The members of "NetdevHubPortOptions" when "type" is "hubport"
8676 The members of "NetdevNetmapOptions" when "type" is "netmap"
8677 The members of "NetdevVhostUserOptions" when "type" is "vhost-user"
8678
8679 Since: 1.2
8680
8681 'l2tpv3' - since 2.1
8682
8683 NetLegacy (Object)
8684
8685 Captures the configuration of a network device; legacy.
8686
8687 Members:
8688
8689 "id: string" (optional)
8690 identifier for monitor commands
8691
8692 "name: string" (optional)
8693 identifier for monitor commands, ignored if "id" is present
8694
8695 "opts: NetLegacyOptions"
8696 device type specific properties (legacy)
8697
8698 Since: 1.2
8699
8700 'vlan': dropped in 3.0
8701
8702 NetLegacyOptionsType (Enum)
8703
8704 Values:
8705
8706 "none"
8707 Not documented
8708
8709 "nic"
8710 Not documented
8711
8712 "user"
8713 Not documented
8714
8715 "tap"
8716 Not documented
8717
8718 "l2tpv3"
8719 Not documented
8720
8721 "socket"
8722 Not documented
8723
8724 "vde"
8725 Not documented
8726
8727 "bridge"
8728 Not documented
8729
8730 "netmap"
8731 Not documented
8732
8733 "vhost-user"
8734 Not documented
8735
8736 Since: 1.2
8737
8738 NetLegacyOptions (Object)
8739
8740 Like Netdev, but for use only by the legacy command line options
8741
8742 Members:
8743
8744 "type: NetLegacyOptionsType"
8745 Not documented
8746
8747 The members of "NetLegacyNicOptions" when "type" is "nic"
8748 The members of "NetdevUserOptions" when "type" is "user"
8749 The members of "NetdevTapOptions" when "type" is "tap"
8750 The members of "NetdevL2TPv3Options" when "type" is "l2tpv3"
8751 The members of "NetdevSocketOptions" when "type" is "socket"
8752 The members of "NetdevVdeOptions" when "type" is "vde"
8753 The members of "NetdevBridgeOptions" when "type" is "bridge"
8754 The members of "NetdevNetmapOptions" when "type" is "netmap"
8755 The members of "NetdevVhostUserOptions" when "type" is "vhost-user"
8756
8757 Since: 1.2
8758
8759 NetFilterDirection (Enum)
8760
8761 Indicates whether a netfilter is attached to a netdev's transmit queue
8762 or receive queue or both.
8763
8764 Values:
8765
8766 "all"
8767 the filter is attached both to the receive and the transmit queue
8768 of the netdev (default).
8769
8770 "rx"
8771 the filter is attached to the receive queue of the netdev, where it
8772 will receive packets sent to the netdev.
8773
8774 "tx"
8775 the filter is attached to the transmit queue of the netdev, where
8776 it will receive packets sent by the netdev.
8777
8778 Since: 2.5
8779
8780 RxState (Enum)
8781
8782 Packets receiving state
8783
8784 Values:
8785
8786 "normal"
8787 filter assigned packets according to the mac-table
8788
8789 "none"
8790 don't receive any assigned packet
8791
8792 "all"
8793 receive all assigned packets
8794
8795 Since: 1.6
8796
8797 RxFilterInfo (Object)
8798
8799 Rx-filter information for a NIC.
8800
8801 Members:
8802
8803 "name: string"
8804 net client name
8805
8806 "promiscuous: boolean"
8807 whether promiscuous mode is enabled
8808
8809 "multicast: RxState"
8810 multicast receive state
8811
8812 "unicast: RxState"
8813 unicast receive state
8814
8815 "vlan: RxState"
8816 vlan receive state (Since 2.0)
8817
8818 "broadcast-allowed: boolean"
8819 whether to receive broadcast
8820
8821 "multicast-overflow: boolean"
8822 multicast table is overflowed or not
8823
8824 "unicast-overflow: boolean"
8825 unicast table is overflowed or not
8826
8827 "main-mac: string"
8828 the main macaddr string
8829
8830 "vlan-table: array of int"
8831 a list of active vlan id
8832
8833 "unicast-table: array of string"
8834 a list of unicast macaddr string
8835
8836 "multicast-table: array of string"
8837 a list of multicast macaddr string
8838
8839 Since: 1.6
8840
8841 query-rx-filter (Command) Return rx-filter information for all NICs
8842 (or for the given NIC).
8843
8844 Arguments:
8845
8846 "name: string" (optional)
8847 net client name
8848
8849 Returns: list of "RxFilterInfo" for all NICs (or for the given NIC).
8850 Returns an error if the given "name" doesn't exist, or given NIC
8851 doesn't support rx-filter querying, or given net client isn't a NIC.
8852
8853 Since: 1.6
8854
8855 Example:
8856
8857 -> { "execute": "query-rx-filter", "arguments": { "name": "vnet0" } }
8858 <- { "return": [
8859 {
8860 "promiscuous": true,
8861 "name": "vnet0",
8862 "main-mac": "52:54:00:12:34:56",
8863 "unicast": "normal",
8864 "vlan": "normal",
8865 "vlan-table": [
8866 4,
8867 0
8868 ],
8869 "unicast-table": [
8870 ],
8871 "multicast": "normal",
8872 "multicast-overflow": false,
8873 "unicast-overflow": false,
8874 "multicast-table": [
8875 "01:00:5e:00:00:01",
8876 "33:33:00:00:00:01",
8877 "33:33:ff:12:34:56"
8878 ],
8879 "broadcast-allowed": false
8880 }
8881 ]
8882 }
8883
8884 NIC_RX_FILTER_CHANGED (Event) Emitted once until the 'query-rx-filter'
8885 command is executed, the first event will always be emitted
8886
8887 Arguments:
8888
8889 "name: string" (optional)
8890 net client name
8891
8892 "path: string"
8893 device path
8894
8895 Since: 1.6
8896
8897 Example:
8898
8899 <- { "event": "NIC_RX_FILTER_CHANGED",
8900 "data": { "name": "vnet0",
8901 "path": "/machine/peripheral/vnet0/virtio-backend" },
8902 "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
8903 }
8904
8905 AnnounceParameters (Object)
8906
8907 Parameters for self-announce timers
8908
8909 Members:
8910
8911 "initial: int"
8912 Initial delay (in ms) before sending the first GARP/RARP
8913 announcement
8914
8915 "max: int"
8916 Maximum delay (in ms) between GARP/RARP announcement packets
8917
8918 "rounds: int"
8919 Number of self-announcement attempts
8920
8921 "step: int"
8922 Delay increase (in ms) after each self-announcement attempt
8923
8924 "interfaces: array of string" (optional)
8925 An optional list of interface names, which restricts the
8926 announcement to the listed interfaces. (Since 4.1)
8927
8928 "id: string" (optional)
8929 A name to be used to identify an instance of announce-timers and to
8930 allow it to modified later. Not for use as part of the migration
8931 parameters. (Since 4.1)
8932
8933 Since: 4.0
8934
8935 announce-self (Command) Trigger generation of broadcast RARP frames to
8936 update network switches. This can be useful when network bonds fail-
8937 over the active slave.
8938
8939 Arguments: the members of "AnnounceParameters"
8940
8941 Example:
8942
8943 -> { "execute": "announce-self",
8944 "arguments": {
8945 "initial": 50, "max": 550, "rounds": 10, "step": 50,
8946 "interfaces": ["vn2", "vn3"], "id": "bob" } }
8947 <- { "return": {} }
8948
8949 Since: 4.0
8950
8951 FAILOVER_NEGOTIATED (Event) Emitted when VIRTIO_NET_F_STANDBY was
8952 enabled during feature negotiation. Failover primary devices which
8953 were hidden (not hotplugged when requested) before will now be
8954 hotplugged by the virtio-net standby device.
8955
8956 device-id: QEMU device id of the unplugged device
8957
8958 Arguments:
8959
8960 "device-id: string"
8961 Not documented
8962
8963 Since: 4.2
8964
8965 Example:
8966
8967 <- { "event": "FAILOVER_NEGOTIATED",
8968 "data": "net1" }
8969
8970 RDMA device
8971 RDMA_GID_STATUS_CHANGED (Event) Emitted when guest driver adds/deletes
8972 GID to/from device
8973
8974 Arguments:
8975
8976 "netdev: string"
8977 RoCE Network Device name
8978
8979 "gid-status: boolean"
8980 Add or delete indication
8981
8982 "subnet-prefix: int"
8983 Subnet Prefix
8984
8985 "interface-id: int"
8986 Not documented
8987
8988 "interface-id" : Interface ID
8989
8990 Since: 4.0
8991
8992 Example:
8993
8994 <- {"timestamp": {"seconds": 1541579657, "microseconds": 986760},
8995 "event": "RDMA_GID_STATUS_CHANGED",
8996 "data":
8997 {"netdev": "bridge0",
8998 "interface-id": 15880512517475447892,
8999 "gid-status": true,
9000 "subnet-prefix": 33022}}
9001
9002 Rocker switch device
9003 RockerSwitch (Object)
9004
9005 Rocker switch information.
9006
9007 Members:
9008
9009 "name: string"
9010 switch name
9011
9012 "id: int"
9013 switch ID
9014
9015 "ports: int"
9016 number of front-panel ports
9017
9018 Since: 2.4
9019
9020 query-rocker (Command) Return rocker switch information.
9021
9022 Arguments:
9023
9024 "name: string"
9025 Not documented
9026
9027 Returns: "Rocker" information
9028
9029 Since: 2.4
9030
9031 Example:
9032
9033 -> { "execute": "query-rocker", "arguments": { "name": "sw1" } }
9034 <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}}
9035
9036 RockerPortDuplex (Enum)
9037
9038 An eumeration of port duplex states.
9039
9040 Values:
9041
9042 "half"
9043 half duplex
9044
9045 "full"
9046 full duplex
9047
9048 Since: 2.4
9049
9050 RockerPortAutoneg (Enum)
9051
9052 An eumeration of port autoneg states.
9053
9054 Values:
9055
9056 "off"
9057 autoneg is off
9058
9059 "on"
9060 autoneg is on
9061
9062 Since: 2.4
9063
9064 RockerPort (Object)
9065
9066 Rocker switch port information.
9067
9068 Members:
9069
9070 "name: string"
9071 port name
9072
9073 "enabled: boolean"
9074 port is enabled for I/O
9075
9076 "link-up: boolean"
9077 physical link is UP on port
9078
9079 "speed: int"
9080 port link speed in Mbps
9081
9082 "duplex: RockerPortDuplex"
9083 port link duplex
9084
9085 "autoneg: RockerPortAutoneg"
9086 port link autoneg
9087
9088 Since: 2.4
9089
9090 query-rocker-ports (Command) Return rocker switch port information.
9091
9092 Arguments:
9093
9094 "name: string"
9095 Not documented
9096
9097 Returns: a list of "RockerPort" information
9098
9099 Since: 2.4
9100
9101 Example:
9102
9103 -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } }
9104 <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1",
9105 "autoneg": "off", "link-up": true, "speed": 10000},
9106 {"duplex": "full", "enabled": true, "name": "sw1.2",
9107 "autoneg": "off", "link-up": true, "speed": 10000}
9108 ]}
9109
9110 RockerOfDpaFlowKey (Object)
9111
9112 Rocker switch OF-DPA flow key
9113
9114 Members:
9115
9116 "priority: int"
9117 key priority, 0 being lowest priority
9118
9119 "tbl-id: int"
9120 flow table ID
9121
9122 "in-pport: int" (optional)
9123 physical input port
9124
9125 "tunnel-id: int" (optional)
9126 tunnel ID
9127
9128 "vlan-id: int" (optional)
9129 VLAN ID
9130
9131 "eth-type: int" (optional)
9132 Ethernet header type
9133
9134 "eth-src: string" (optional)
9135 Ethernet header source MAC address
9136
9137 "eth-dst: string" (optional)
9138 Ethernet header destination MAC address
9139
9140 "ip-proto: int" (optional)
9141 IP Header protocol field
9142
9143 "ip-tos: int" (optional)
9144 IP header TOS field
9145
9146 "ip-dst: string" (optional)
9147 IP header destination address
9148
9149 Note: optional members may or may not appear in the flow key depending
9150 if they're relevant to the flow key.
9151
9152 Since: 2.4
9153
9154 RockerOfDpaFlowMask (Object)
9155
9156 Rocker switch OF-DPA flow mask
9157
9158 Members:
9159
9160 "in-pport: int" (optional)
9161 physical input port
9162
9163 "tunnel-id: int" (optional)
9164 tunnel ID
9165
9166 "vlan-id: int" (optional)
9167 VLAN ID
9168
9169 "eth-src: string" (optional)
9170 Ethernet header source MAC address
9171
9172 "eth-dst: string" (optional)
9173 Ethernet header destination MAC address
9174
9175 "ip-proto: int" (optional)
9176 IP Header protocol field
9177
9178 "ip-tos: int" (optional)
9179 IP header TOS field
9180
9181 Note: optional members may or may not appear in the flow mask depending
9182 if they're relevant to the flow mask.
9183
9184 Since: 2.4
9185
9186 RockerOfDpaFlowAction (Object)
9187
9188 Rocker switch OF-DPA flow action
9189
9190 Members:
9191
9192 "goto-tbl: int" (optional)
9193 next table ID
9194
9195 "group-id: int" (optional)
9196 group ID
9197
9198 "tunnel-lport: int" (optional)
9199 tunnel logical port ID
9200
9201 "vlan-id: int" (optional)
9202 VLAN ID
9203
9204 "new-vlan-id: int" (optional)
9205 new VLAN ID
9206
9207 "out-pport: int" (optional)
9208 physical output port
9209
9210 Note: optional members may or may not appear in the flow action
9211 depending if they're relevant to the flow action.
9212
9213 Since: 2.4
9214
9215 RockerOfDpaFlow (Object)
9216
9217 Rocker switch OF-DPA flow
9218
9219 Members:
9220
9221 "cookie: int"
9222 flow unique cookie ID
9223
9224 "hits: int"
9225 count of matches (hits) on flow
9226
9227 "key: RockerOfDpaFlowKey"
9228 flow key
9229
9230 "mask: RockerOfDpaFlowMask"
9231 flow mask
9232
9233 "action: RockerOfDpaFlowAction"
9234 flow action
9235
9236 Since: 2.4
9237
9238 query-rocker-of-dpa-flows (Command) Return rocker OF-DPA flow
9239 information.
9240
9241 Arguments:
9242
9243 "name: string"
9244 switch name
9245
9246 "tbl-id: int" (optional)
9247 flow table ID. If tbl-id is not specified, returns flow
9248 information for all tables.
9249
9250 Returns: rocker OF-DPA flow information
9251
9252 Since: 2.4
9253
9254 Example:
9255
9256 -> { "execute": "query-rocker-of-dpa-flows",
9257 "arguments": { "name": "sw1" } }
9258 <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0},
9259 "hits": 138,
9260 "cookie": 0,
9261 "action": {"goto-tbl": 10},
9262 "mask": {"in-pport": 4294901760}
9263 },
9264 {...more...},
9265 ]}
9266
9267 RockerOfDpaGroup (Object)
9268
9269 Rocker switch OF-DPA group
9270
9271 Members:
9272
9273 "id: int"
9274 group unique ID
9275
9276 "type: int"
9277 group type
9278
9279 "vlan-id: int" (optional)
9280 VLAN ID
9281
9282 "pport: int" (optional)
9283 physical port number
9284
9285 "index: int" (optional)
9286 group index, unique with group type
9287
9288 "out-pport: int" (optional)
9289 output physical port number
9290
9291 "group-id: int" (optional)
9292 next group ID
9293
9294 "set-vlan-id: int" (optional)
9295 VLAN ID to set
9296
9297 "pop-vlan: int" (optional)
9298 pop VLAN headr from packet
9299
9300 "group-ids: array of int" (optional)
9301 list of next group IDs
9302
9303 "set-eth-src: string" (optional)
9304 set source MAC address in Ethernet header
9305
9306 "set-eth-dst: string" (optional)
9307 set destination MAC address in Ethernet header
9308
9309 "ttl-check: int" (optional)
9310 perform TTL check
9311
9312 Note: optional members may or may not appear in the group depending if
9313 they're relevant to the group type.
9314
9315 Since: 2.4
9316
9317 query-rocker-of-dpa-groups (Command) Return rocker OF-DPA group
9318 information.
9319
9320 Arguments:
9321
9322 "name: string"
9323 switch name
9324
9325 "type: int" (optional)
9326 group type. If type is not specified, returns group information
9327 for all group types.
9328
9329 Returns: rocker OF-DPA group information
9330
9331 Since: 2.4
9332
9333 Example:
9334
9335 -> { "execute": "query-rocker-of-dpa-groups",
9336 "arguments": { "name": "sw1" } }
9337 <- { "return": [ {"type": 0, "out-pport": 2,
9338 "pport": 2, "vlan-id": 3841,
9339 "pop-vlan": 1, "id": 251723778},
9340 {"type": 0, "out-pport": 0,
9341 "pport": 0, "vlan-id": 3841,
9342 "pop-vlan": 1, "id": 251723776},
9343 {"type": 0, "out-pport": 1,
9344 "pport": 1, "vlan-id": 3840,
9345 "pop-vlan": 1, "id": 251658241},
9346 {"type": 0, "out-pport": 0,
9347 "pport": 0, "vlan-id": 3840,
9348 "pop-vlan": 1, "id": 251658240}
9349 ]}
9350
9351 TPM (trusted platform module) devices
9352 TpmModel (Enum)
9353
9354 An enumeration of TPM models
9355
9356 Values:
9357
9358 "tpm-tis"
9359 TPM TIS model
9360
9361 "tpm-crb"
9362 TPM CRB model (since 2.12)
9363
9364 Since: 1.5
9365
9366 query-tpm-models (Command) Return a list of supported TPM models
9367
9368 Returns: a list of TpmModel
9369
9370 Since: 1.5
9371
9372 Example:
9373
9374 -> { "execute": "query-tpm-models" }
9375 <- { "return": [ "tpm-tis", "tpm-crb" ] }
9376
9377 TpmType (Enum)
9378
9379 An enumeration of TPM types
9380
9381 Values:
9382
9383 "passthrough"
9384 TPM passthrough type
9385
9386 "emulator"
9387 Software Emulator TPM type Since: 2.11
9388
9389 Since: 1.5
9390
9391 query-tpm-types (Command) Return a list of supported TPM types
9392
9393 Returns: a list of TpmType
9394
9395 Since: 1.5
9396
9397 Example:
9398
9399 -> { "execute": "query-tpm-types" }
9400 <- { "return": [ "passthrough", "emulator" ] }
9401
9402 TPMPassthroughOptions (Object)
9403
9404 Information about the TPM passthrough type
9405
9406 Members:
9407
9408 "path: string" (optional)
9409 string describing the path used for accessing the TPM device
9410
9411 "cancel-path: string" (optional)
9412 string showing the TPM's sysfs cancel file for cancellation of TPM
9413 commands while they are executing
9414
9415 Since: 1.5
9416
9417 TPMEmulatorOptions (Object)
9418
9419 Information about the TPM emulator type
9420
9421 Members:
9422
9423 "chardev: string"
9424 Name of a unix socket chardev
9425
9426 Since: 2.11
9427
9428 TpmTypeOptions (Object)
9429
9430 A union referencing different TPM backend types' configuration options
9431
9432 Members:
9433
9434 "type"
9435 'passthrough' The configuration options for the TPM passthrough
9436 type 'emulator' The configuration options for TPM emulator backend
9437 type
9438
9439 "data: TPMPassthroughOptions" when "type" is "passthrough"
9440 "data: TPMEmulatorOptions" when "type" is "emulator"
9441
9442 Since: 1.5
9443
9444 TPMInfo (Object)
9445
9446 Information about the TPM
9447
9448 Members:
9449
9450 "id: string"
9451 The Id of the TPM
9452
9453 "model: TpmModel"
9454 The TPM frontend model
9455
9456 "options: TpmTypeOptions"
9457 The TPM (backend) type configuration options
9458
9459 Since: 1.5
9460
9461 query-tpm (Command) Return information about the TPM device
9462
9463 Returns: "TPMInfo" on success
9464
9465 Since: 1.5
9466
9467 Example:
9468
9469 -> { "execute": "query-tpm" }
9470 <- { "return":
9471 [
9472 { "model": "tpm-tis",
9473 "options":
9474 { "type": "passthrough",
9475 "data":
9476 { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
9477 "path": "/dev/tpm0"
9478 }
9479 },
9480 "id": "tpm0"
9481 }
9482 ]
9483 }
9484
9485 Remote desktop
9486 set_password (Command) Sets the password of a remote display session.
9487
9488 Arguments:
9489
9490 "protocol: string"
9491 `vnc' to modify the VNC server password `spice' to modify the Spice
9492 server password
9493
9494 "password: string"
9495 the new password
9496
9497 "connected: string" (optional)
9498 how to handle existing clients when changing the password. If
9499 nothing is specified, defaults to `keep' `fail' to fail the command
9500 if clients are connected `disconnect' to disconnect existing
9501 clients `keep' to maintain existing clients
9502
9503 Returns: Nothing on success If Spice is not enabled, DeviceNotFound
9504
9505 Since: 0.14.0
9506
9507 Example:
9508
9509 -> { "execute": "set_password", "arguments": { "protocol": "vnc",
9510 "password": "secret" } }
9511 <- { "return": {} }
9512
9513 expire_password (Command) Expire the password of a remote display
9514 server.
9515
9516 Arguments:
9517
9518 "protocol: string"
9519 the name of the remote display protocol `vnc' or `spice'
9520
9521 "time: string"
9522 when to expire the password. `now' to expire the password
9523 immediately `never' to cancel password expiration `+INT' where INT
9524 is the number of seconds from now (integer) `INT' where INT is the
9525 absolute time in seconds
9526
9527 Returns: Nothing on success If "protocol" is `spice' and Spice is not
9528 active, DeviceNotFound
9529
9530 Since: 0.14.0
9531
9532 Notes: Time is relative to the server and currently there is no way to
9533 coordinate server time with client time. It is not recommended to use
9534 the absolute time version of the "time" parameter unless you're sure
9535 you are on the same machine as the QEMU instance.
9536
9537 Example:
9538
9539 -> { "execute": "expire_password", "arguments": { "protocol": "vnc",
9540 "time": "+60" } }
9541 <- { "return": {} }
9542
9543 screendump (Command) Write a PPM of the VGA screen to a file.
9544
9545 Arguments:
9546
9547 "filename: string"
9548 the path of a new PPM file to store the image
9549
9550 "device: string" (optional)
9551 ID of the display device that should be dumped. If this parameter
9552 is missing, the primary display will be used. (Since 2.12)
9553
9554 "head: int" (optional)
9555 head to use in case the device supports multiple heads. If this
9556 parameter is missing, head #0 will be used. Also note that the head
9557 can only be specified in conjunction with the device ID. (Since
9558 2.12)
9559
9560 Returns: Nothing on success
9561
9562 Since: 0.14.0
9563
9564 Example:
9565
9566 -> { "execute": "screendump",
9567 "arguments": { "filename": "/tmp/image" } }
9568 <- { "return": {} }
9569
9570 Spice
9571
9572 SpiceBasicInfo (Object)
9573
9574 The basic information for SPICE network connection
9575
9576 Members:
9577
9578 "host: string"
9579 IP address
9580
9581 "port: string"
9582 port number
9583
9584 "family: NetworkAddressFamily"
9585 address family
9586
9587 Since: 2.1
9588
9589 If: "defined(CONFIG_SPICE)"
9590
9591 SpiceServerInfo (Object)
9592
9593 Information about a SPICE server
9594
9595 Members:
9596
9597 "auth: string" (optional)
9598 authentication method
9599
9600 The members of "SpiceBasicInfo"
9601
9602 Since: 2.1
9603
9604 If: "defined(CONFIG_SPICE)"
9605
9606 SpiceChannel (Object)
9607
9608 Information about a SPICE client channel.
9609
9610 Members:
9611
9612 "connection-id: int"
9613 SPICE connection id number. All channels with the same id belong
9614 to the same SPICE session.
9615
9616 "channel-type: int"
9617 SPICE channel type number. "1" is the main control channel, filter
9618 for this one if you want to track spice sessions only
9619
9620 "channel-id: int"
9621 SPICE channel ID number. Usually "0", might be different when
9622 multiple channels of the same type exist, such as multiple display
9623 channels in a multihead setup
9624
9625 "tls: boolean"
9626 true if the channel is encrypted, false otherwise.
9627
9628 The members of "SpiceBasicInfo"
9629
9630 Since: 0.14.0
9631
9632 If: "defined(CONFIG_SPICE)"
9633
9634 SpiceQueryMouseMode (Enum)
9635
9636 An enumeration of Spice mouse states.
9637
9638 Values:
9639
9640 "client"
9641 Mouse cursor position is determined by the client.
9642
9643 "server"
9644 Mouse cursor position is determined by the server.
9645
9646 "unknown"
9647 No information is available about mouse mode used by the spice
9648 server.
9649
9650 Note: spice/enums.h has a SpiceMouseMode already, hence the name.
9651
9652 Since: 1.1
9653
9654 If: "defined(CONFIG_SPICE)"
9655
9656 SpiceInfo (Object)
9657
9658 Information about the SPICE session.
9659
9660 Members:
9661
9662 "enabled: boolean"
9663 true if the SPICE server is enabled, false otherwise
9664
9665 "migrated: boolean"
9666 true if the last guest migration completed and spice migration had
9667 completed as well. false otherwise. (since 1.4)
9668
9669 "host: string" (optional)
9670 The hostname the SPICE server is bound to. This depends on the
9671 name resolution on the host and may be an IP address.
9672
9673 "port: int" (optional)
9674 The SPICE server's port number.
9675
9676 "compiled-version: string" (optional)
9677 SPICE server version.
9678
9679 "tls-port: int" (optional)
9680 The SPICE server's TLS port number.
9681
9682 "auth: string" (optional)
9683 the current authentication type used by the server 'none' if no
9684 authentication is being used 'spice' uses SASL or direct TLS
9685 authentication, depending on command line options
9686
9687 "mouse-mode: SpiceQueryMouseMode"
9688 The mode in which the mouse cursor is displayed currently. Can be
9689 determined by the client or the server, or unknown if spice server
9690 doesn't provide this information. (since: 1.1)
9691
9692 "channels: array of SpiceChannel" (optional)
9693 a list of "SpiceChannel" for each active spice channel
9694
9695 Since: 0.14.0
9696
9697 If: "defined(CONFIG_SPICE)"
9698
9699 query-spice (Command) Returns information about the current SPICE
9700 server
9701
9702 Returns: "SpiceInfo"
9703
9704 Since: 0.14.0
9705
9706 Example:
9707
9708 -> { "execute": "query-spice" }
9709 <- { "return": {
9710 "enabled": true,
9711 "auth": "spice",
9712 "port": 5920,
9713 "tls-port": 5921,
9714 "host": "0.0.0.0",
9715 "channels": [
9716 {
9717 "port": "54924",
9718 "family": "ipv4",
9719 "channel-type": 1,
9720 "connection-id": 1804289383,
9721 "host": "127.0.0.1",
9722 "channel-id": 0,
9723 "tls": true
9724 },
9725 {
9726 "port": "36710",
9727 "family": "ipv4",
9728 "channel-type": 4,
9729 "connection-id": 1804289383,
9730 "host": "127.0.0.1",
9731 "channel-id": 0,
9732 "tls": false
9733 },
9734 [ ... more channels follow ... ]
9735 ]
9736 }
9737 }
9738
9739 If: "defined(CONFIG_SPICE)"
9740
9741 SPICE_CONNECTED (Event) Emitted when a SPICE client establishes a
9742 connection
9743
9744 Arguments:
9745
9746 "server: SpiceBasicInfo"
9747 server information
9748
9749 "client: SpiceBasicInfo"
9750 client information
9751
9752 Since: 0.14.0
9753
9754 Example:
9755
9756 <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
9757 "event": "SPICE_CONNECTED",
9758 "data": {
9759 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
9760 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
9761 }}
9762
9763 If: "defined(CONFIG_SPICE)"
9764
9765 SPICE_INITIALIZED (Event) Emitted after initial handshake and
9766 authentication takes place (if any) and the SPICE channel is up and
9767 running
9768
9769 Arguments:
9770
9771 "server: SpiceServerInfo"
9772 server information
9773
9774 "client: SpiceChannel"
9775 client information
9776
9777 Since: 0.14.0
9778
9779 Example:
9780
9781 <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
9782 "event": "SPICE_INITIALIZED",
9783 "data": {"server": {"auth": "spice", "port": "5921",
9784 "family": "ipv4", "host": "127.0.0.1"},
9785 "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
9786 "connection-id": 1804289383, "host": "127.0.0.1",
9787 "channel-id": 0, "tls": true}
9788 }}
9789
9790 If: "defined(CONFIG_SPICE)"
9791
9792 SPICE_DISCONNECTED (Event) Emitted when the SPICE connection is closed
9793
9794 Arguments:
9795
9796 "server: SpiceBasicInfo"
9797 server information
9798
9799 "client: SpiceBasicInfo"
9800 client information
9801
9802 Since: 0.14.0
9803
9804 Example:
9805
9806 <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
9807 "event": "SPICE_DISCONNECTED",
9808 "data": {
9809 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
9810 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
9811 }}
9812
9813 If: "defined(CONFIG_SPICE)"
9814
9815 SPICE_MIGRATE_COMPLETED (Event) Emitted when SPICE migration has
9816 completed
9817
9818 Since: 1.3
9819
9820 Example:
9821
9822 <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
9823 "event": "SPICE_MIGRATE_COMPLETED" }
9824
9825 If: "defined(CONFIG_SPICE)"
9826
9827 VNC
9828
9829 VncBasicInfo (Object)
9830
9831 The basic information for vnc network connection
9832
9833 Members:
9834
9835 "host: string"
9836 IP address
9837
9838 "service: string"
9839 The service name of the vnc port. This may depend on the host
9840 system's service database so symbolic names should not be relied
9841 on.
9842
9843 "family: NetworkAddressFamily"
9844 address family
9845
9846 "websocket: boolean"
9847 true in case the socket is a websocket (since 2.3).
9848
9849 Since: 2.1
9850
9851 If: "defined(CONFIG_VNC)"
9852
9853 VncServerInfo (Object)
9854
9855 The network connection information for server
9856
9857 Members:
9858
9859 "auth: string" (optional)
9860 authentication method used for the plain (non-websocket) VNC server
9861
9862 The members of "VncBasicInfo"
9863
9864 Since: 2.1
9865
9866 If: "defined(CONFIG_VNC)"
9867
9868 VncClientInfo (Object)
9869
9870 Information about a connected VNC client.
9871
9872 Members:
9873
9874 "x509_dname: string" (optional)
9875 If x509 authentication is in use, the Distinguished Name of the
9876 client.
9877
9878 "sasl_username: string" (optional)
9879 If SASL authentication is in use, the SASL username used for
9880 authentication.
9881
9882 The members of "VncBasicInfo"
9883
9884 Since: 0.14.0
9885
9886 If: "defined(CONFIG_VNC)"
9887
9888 VncInfo (Object)
9889
9890 Information about the VNC session.
9891
9892 Members:
9893
9894 "enabled: boolean"
9895 true if the VNC server is enabled, false otherwise
9896
9897 "host: string" (optional)
9898 The hostname the VNC server is bound to. This depends on the name
9899 resolution on the host and may be an IP address.
9900
9901 "family: NetworkAddressFamily" (optional)
9902 'ipv6' if the host is listening for IPv6 connections 'ipv4' if the
9903 host is listening for IPv4 connections 'unix' if the host is
9904 listening on a unix domain socket 'unknown' otherwise
9905
9906 "service: string" (optional)
9907 The service name of the server's port. This may depends on the
9908 host system's service database so symbolic names should not be
9909 relied on.
9910
9911 "auth: string" (optional)
9912 the current authentication type used by the server 'none' if no
9913 authentication is being used 'vnc' if VNC authentication is being
9914 used 'vencrypt+plain' if VEncrypt is used with plain text
9915 authentication 'vencrypt+tls+none' if VEncrypt is used with TLS and
9916 no authentication 'vencrypt+tls+vnc' if VEncrypt is used with TLS
9917 and VNC authentication 'vencrypt+tls+plain' if VEncrypt is used
9918 with TLS and plain text auth 'vencrypt+x509+none' if VEncrypt is
9919 used with x509 and no auth 'vencrypt+x509+vnc' if VEncrypt is used
9920 with x509 and VNC auth 'vencrypt+x509+plain' if VEncrypt is used
9921 with x509 and plain text auth 'vencrypt+tls+sasl' if VEncrypt is
9922 used with TLS and SASL auth 'vencrypt+x509+sasl' if VEncrypt is
9923 used with x509 and SASL auth
9924
9925 "clients: array of VncClientInfo" (optional)
9926 a list of "VncClientInfo" of all currently connected clients
9927
9928 Since: 0.14.0
9929
9930 If: "defined(CONFIG_VNC)"
9931
9932 VncPrimaryAuth (Enum)
9933
9934 vnc primary authentication method.
9935
9936 Values:
9937
9938 "none"
9939 Not documented
9940
9941 "vnc"
9942 Not documented
9943
9944 "ra2"
9945 Not documented
9946
9947 "ra2ne"
9948 Not documented
9949
9950 "tight"
9951 Not documented
9952
9953 "ultra"
9954 Not documented
9955
9956 "tls"
9957 Not documented
9958
9959 "vencrypt"
9960 Not documented
9961
9962 "sasl"
9963 Not documented
9964
9965 Since: 2.3
9966
9967 If: "defined(CONFIG_VNC)"
9968
9969 VncVencryptSubAuth (Enum)
9970
9971 vnc sub authentication method with vencrypt.
9972
9973 Values:
9974
9975 "plain"
9976 Not documented
9977
9978 "tls-none"
9979 Not documented
9980
9981 "x509-none"
9982 Not documented
9983
9984 "tls-vnc"
9985 Not documented
9986
9987 "x509-vnc"
9988 Not documented
9989
9990 "tls-plain"
9991 Not documented
9992
9993 "x509-plain"
9994 Not documented
9995
9996 "tls-sasl"
9997 Not documented
9998
9999 "x509-sasl"
10000 Not documented
10001
10002 Since: 2.3
10003
10004 If: "defined(CONFIG_VNC)"
10005
10006 VncServerInfo2 (Object)
10007
10008 The network connection information for server
10009
10010 Members:
10011
10012 "auth: VncPrimaryAuth"
10013 The current authentication type used by the servers
10014
10015 "vencrypt: VncVencryptSubAuth" (optional)
10016 The vencrypt sub authentication type used by the servers, only
10017 specified in case auth == vencrypt.
10018
10019 The members of "VncBasicInfo"
10020
10021 Since: 2.9
10022
10023 If: "defined(CONFIG_VNC)"
10024
10025 VncInfo2 (Object)
10026
10027 Information about a vnc server
10028
10029 Members:
10030
10031 "id: string"
10032 vnc server name.
10033
10034 "server: array of VncServerInfo2"
10035 A list of "VncBasincInfo" describing all listening sockets. The
10036 list can be empty (in case the vnc server is disabled). It also
10037 may have multiple entries: normal + websocket, possibly also ipv4 +
10038 ipv6 in the future.
10039
10040 "clients: array of VncClientInfo"
10041 A list of "VncClientInfo" of all currently connected clients. The
10042 list can be empty, for obvious reasons.
10043
10044 "auth: VncPrimaryAuth"
10045 The current authentication type used by the non-websockets servers
10046
10047 "vencrypt: VncVencryptSubAuth" (optional)
10048 The vencrypt authentication type used by the servers, only
10049 specified in case auth == vencrypt.
10050
10051 "display: string" (optional)
10052 The display device the vnc server is linked to.
10053
10054 Since: 2.3
10055
10056 If: "defined(CONFIG_VNC)"
10057
10058 query-vnc (Command) Returns information about the current VNC server
10059
10060 Returns: "VncInfo"
10061
10062 Since: 0.14.0
10063
10064 Example:
10065
10066 -> { "execute": "query-vnc" }
10067 <- { "return": {
10068 "enabled":true,
10069 "host":"0.0.0.0",
10070 "service":"50402",
10071 "auth":"vnc",
10072 "family":"ipv4",
10073 "clients":[
10074 {
10075 "host":"127.0.0.1",
10076 "service":"50401",
10077 "family":"ipv4"
10078 }
10079 ]
10080 }
10081 }
10082
10083 If: "defined(CONFIG_VNC)"
10084
10085 query-vnc-servers (Command) Returns a list of vnc servers. The list
10086 can be empty.
10087
10088 Returns: a list of "VncInfo2"
10089
10090 Since: 2.3
10091
10092 If: "defined(CONFIG_VNC)"
10093
10094 change-vnc-password (Command) Change the VNC server password.
10095
10096 Arguments:
10097
10098 "password: string"
10099 the new password to use with VNC authentication
10100
10101 Since: 1.1
10102
10103 Notes: An empty password in this command will set the password to the
10104 empty string. Existing clients are unaffected by executing this
10105 command.
10106
10107 If: "defined(CONFIG_VNC)"
10108
10109 VNC_CONNECTED (Event) Emitted when a VNC client establishes a
10110 connection
10111
10112 Arguments:
10113
10114 "server: VncServerInfo"
10115 server information
10116
10117 "client: VncBasicInfo"
10118 client information
10119
10120 Note: This event is emitted before any authentication takes place, thus
10121 the authentication ID is not provided
10122
10123 Since: 0.13.0
10124
10125 Example:
10126
10127 <- { "event": "VNC_CONNECTED",
10128 "data": {
10129 "server": { "auth": "sasl", "family": "ipv4",
10130 "service": "5901", "host": "0.0.0.0" },
10131 "client": { "family": "ipv4", "service": "58425",
10132 "host": "127.0.0.1" } },
10133 "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
10134
10135 If: "defined(CONFIG_VNC)"
10136
10137 VNC_INITIALIZED (Event) Emitted after authentication takes place (if
10138 any) and the VNC session is made active
10139
10140 Arguments:
10141
10142 "server: VncServerInfo"
10143 server information
10144
10145 "client: VncClientInfo"
10146 client information
10147
10148 Since: 0.13.0
10149
10150 Example:
10151
10152 <- { "event": "VNC_INITIALIZED",
10153 "data": {
10154 "server": { "auth": "sasl", "family": "ipv4",
10155 "service": "5901", "host": "0.0.0.0"},
10156 "client": { "family": "ipv4", "service": "46089",
10157 "host": "127.0.0.1", "sasl_username": "luiz" } },
10158 "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
10159
10160 If: "defined(CONFIG_VNC)"
10161
10162 VNC_DISCONNECTED (Event) Emitted when the connection is closed
10163
10164 Arguments:
10165
10166 "server: VncServerInfo"
10167 server information
10168
10169 "client: VncClientInfo"
10170 client information
10171
10172 Since: 0.13.0
10173
10174 Example:
10175
10176 <- { "event": "VNC_DISCONNECTED",
10177 "data": {
10178 "server": { "auth": "sasl", "family": "ipv4",
10179 "service": "5901", "host": "0.0.0.0" },
10180 "client": { "family": "ipv4", "service": "58425",
10181 "host": "127.0.0.1", "sasl_username": "luiz" } },
10182 "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
10183
10184 If: "defined(CONFIG_VNC)"
10185
10186 Input
10187 MouseInfo (Object)
10188
10189 Information about a mouse device.
10190
10191 Members:
10192
10193 "name: string"
10194 the name of the mouse device
10195
10196 "index: int"
10197 the index of the mouse device
10198
10199 "current: boolean"
10200 true if this device is currently receiving mouse events
10201
10202 "absolute: boolean"
10203 true if this device supports absolute coordinates as input
10204
10205 Since: 0.14.0
10206
10207 query-mice (Command) Returns information about each active mouse
10208 device
10209
10210 Returns: a list of "MouseInfo" for each device
10211
10212 Since: 0.14.0
10213
10214 Example:
10215
10216 -> { "execute": "query-mice" }
10217 <- { "return": [
10218 {
10219 "name":"QEMU Microsoft Mouse",
10220 "index":0,
10221 "current":false,
10222 "absolute":false
10223 },
10224 {
10225 "name":"QEMU PS/2 Mouse",
10226 "index":1,
10227 "current":true,
10228 "absolute":true
10229 }
10230 ]
10231 }
10232
10233 QKeyCode (Enum)
10234
10235 An enumeration of key name.
10236
10237 This is used by the "send-key" command.
10238
10239 Values:
10240
10241 "unmapped"
10242 since 2.0
10243
10244 "pause"
10245 since 2.0
10246
10247 "ro"
10248 since 2.4
10249
10250 "kp_comma"
10251 since 2.4
10252
10253 "kp_equals"
10254 since 2.6
10255
10256 "power"
10257 since 2.6
10258
10259 "hiragana"
10260 since 2.9
10261
10262 "henkan"
10263 since 2.9
10264
10265 "yen"
10266 since 2.9
10267
10268 "sleep"
10269 since 2.10
10270
10271 "wake"
10272 since 2.10
10273
10274 "audionext"
10275 since 2.10
10276
10277 "audioprev"
10278 since 2.10
10279
10280 "audiostop"
10281 since 2.10
10282
10283 "audioplay"
10284 since 2.10
10285
10286 "audiomute"
10287 since 2.10
10288
10289 "volumeup"
10290 since 2.10
10291
10292 "volumedown"
10293 since 2.10
10294
10295 "mediaselect"
10296 since 2.10
10297
10298 "mail"
10299 since 2.10
10300
10301 "calculator"
10302 since 2.10
10303
10304 "computer"
10305 since 2.10
10306
10307 "ac_home"
10308 since 2.10
10309
10310 "ac_back"
10311 since 2.10
10312
10313 "ac_forward"
10314 since 2.10
10315
10316 "ac_refresh"
10317 since 2.10
10318
10319 "ac_bookmarks"
10320 since 2.10 altgr, altgr_r: dropped in 2.10
10321
10322 "muhenkan"
10323 since 2.12
10324
10325 "katakanahiragana"
10326 since 2.12
10327
10328 "shift"
10329 Not documented
10330
10331 "shift_r"
10332 Not documented
10333
10334 "alt"
10335 Not documented
10336
10337 "alt_r"
10338 Not documented
10339
10340 "ctrl"
10341 Not documented
10342
10343 "ctrl_r"
10344 Not documented
10345
10346 "menu"
10347 Not documented
10348
10349 "esc"
10350 Not documented
10351
10352 1 Not documented
10353
10354 2 Not documented
10355
10356 3 Not documented
10357
10358 4 Not documented
10359
10360 5 Not documented
10361
10362 6 Not documented
10363
10364 7 Not documented
10365
10366 8 Not documented
10367
10368 9 Not documented
10369
10370 0 Not documented
10371
10372 "minus"
10373 Not documented
10374
10375 "equal"
10376 Not documented
10377
10378 "backspace"
10379 Not documented
10380
10381 "tab"
10382 Not documented
10383
10384 "q" Not documented
10385
10386 "w" Not documented
10387
10388 "e" Not documented
10389
10390 "r" Not documented
10391
10392 "t" Not documented
10393
10394 "y" Not documented
10395
10396 "u" Not documented
10397
10398 "i" Not documented
10399
10400 "o" Not documented
10401
10402 "p" Not documented
10403
10404 "bracket_left"
10405 Not documented
10406
10407 "bracket_right"
10408 Not documented
10409
10410 "ret"
10411 Not documented
10412
10413 "a" Not documented
10414
10415 "s" Not documented
10416
10417 "d" Not documented
10418
10419 "f" Not documented
10420
10421 "g" Not documented
10422
10423 "h" Not documented
10424
10425 "j" Not documented
10426
10427 "k" Not documented
10428
10429 "l" Not documented
10430
10431 "semicolon"
10432 Not documented
10433
10434 "apostrophe"
10435 Not documented
10436
10437 "grave_accent"
10438 Not documented
10439
10440 "backslash"
10441 Not documented
10442
10443 "z" Not documented
10444
10445 "x" Not documented
10446
10447 "c" Not documented
10448
10449 "v" Not documented
10450
10451 "b" Not documented
10452
10453 "n" Not documented
10454
10455 "m" Not documented
10456
10457 "comma"
10458 Not documented
10459
10460 "dot"
10461 Not documented
10462
10463 "slash"
10464 Not documented
10465
10466 "asterisk"
10467 Not documented
10468
10469 "spc"
10470 Not documented
10471
10472 "caps_lock"
10473 Not documented
10474
10475 "f1"
10476 Not documented
10477
10478 "f2"
10479 Not documented
10480
10481 "f3"
10482 Not documented
10483
10484 "f4"
10485 Not documented
10486
10487 "f5"
10488 Not documented
10489
10490 "f6"
10491 Not documented
10492
10493 "f7"
10494 Not documented
10495
10496 "f8"
10497 Not documented
10498
10499 "f9"
10500 Not documented
10501
10502 "f10"
10503 Not documented
10504
10505 "num_lock"
10506 Not documented
10507
10508 "scroll_lock"
10509 Not documented
10510
10511 "kp_divide"
10512 Not documented
10513
10514 "kp_multiply"
10515 Not documented
10516
10517 "kp_subtract"
10518 Not documented
10519
10520 "kp_add"
10521 Not documented
10522
10523 "kp_enter"
10524 Not documented
10525
10526 "kp_decimal"
10527 Not documented
10528
10529 "sysrq"
10530 Not documented
10531
10532 "kp_0"
10533 Not documented
10534
10535 "kp_1"
10536 Not documented
10537
10538 "kp_2"
10539 Not documented
10540
10541 "kp_3"
10542 Not documented
10543
10544 "kp_4"
10545 Not documented
10546
10547 "kp_5"
10548 Not documented
10549
10550 "kp_6"
10551 Not documented
10552
10553 "kp_7"
10554 Not documented
10555
10556 "kp_8"
10557 Not documented
10558
10559 "kp_9"
10560 Not documented
10561
10562 "less"
10563 Not documented
10564
10565 "f11"
10566 Not documented
10567
10568 "f12"
10569 Not documented
10570
10571 "print"
10572 Not documented
10573
10574 "home"
10575 Not documented
10576
10577 "pgup"
10578 Not documented
10579
10580 "pgdn"
10581 Not documented
10582
10583 "end"
10584 Not documented
10585
10586 "left"
10587 Not documented
10588
10589 "up"
10590 Not documented
10591
10592 "down"
10593 Not documented
10594
10595 "right"
10596 Not documented
10597
10598 "insert"
10599 Not documented
10600
10601 "delete"
10602 Not documented
10603
10604 "stop"
10605 Not documented
10606
10607 "again"
10608 Not documented
10609
10610 "props"
10611 Not documented
10612
10613 "undo"
10614 Not documented
10615
10616 "front"
10617 Not documented
10618
10619 "copy"
10620 Not documented
10621
10622 "open"
10623 Not documented
10624
10625 "paste"
10626 Not documented
10627
10628 "find"
10629 Not documented
10630
10631 "cut"
10632 Not documented
10633
10634 "lf"
10635 Not documented
10636
10637 "help"
10638 Not documented
10639
10640 "meta_l"
10641 Not documented
10642
10643 "meta_r"
10644 Not documented
10645
10646 "compose"
10647 Not documented
10648
10649 'sysrq' was mistakenly added to hack around the fact that the ps2
10650 driver was not generating correct scancodes sequences when 'alt+print'
10651 was pressed. This flaw is now fixed and the 'sysrq' key serves no
10652 further purpose. Any further use of 'sysrq' will be transparently
10653 changed to 'print', so they are effectively synonyms.
10654
10655 Since: 1.3.0
10656
10657 KeyValue (Object)
10658
10659 Represents a keyboard key.
10660
10661 Members:
10662
10663 "type"
10664 One of "number", "qcode"
10665
10666 "data: int" when "type" is "number"
10667 "data: QKeyCode" when "type" is "qcode"
10668
10669 Since: 1.3.0
10670
10671 send-key (Command) Send keys to guest.
10672
10673 Arguments:
10674
10675 "keys: array of KeyValue"
10676 An array of "KeyValue" elements. All "KeyValues" in this array are
10677 simultaneously sent to the guest. A "KeyValue".number value is sent
10678 directly to the guest, while "KeyValue".qcode must be a valid
10679 "QKeyCode" value
10680
10681 "hold-time: int" (optional)
10682 time to delay key up events, milliseconds. Defaults to 100
10683
10684 Returns: Nothing on success If key is unknown or redundant,
10685 InvalidParameter
10686
10687 Since: 1.3.0
10688
10689 Example:
10690
10691 -> { "execute": "send-key",
10692 "arguments": { "keys": [ { "type": "qcode", "data": "ctrl" },
10693 { "type": "qcode", "data": "alt" },
10694 { "type": "qcode", "data": "delete" } ] } }
10695 <- { "return": {} }
10696
10697 InputButton (Enum)
10698
10699 Button of a pointer input device (mouse, tablet).
10700
10701 Values:
10702
10703 "side"
10704 front side button of a 5-button mouse (since 2.9)
10705
10706 "extra"
10707 rear side button of a 5-button mouse (since 2.9)
10708
10709 "left"
10710 Not documented
10711
10712 "middle"
10713 Not documented
10714
10715 "right"
10716 Not documented
10717
10718 "wheel-up"
10719 Not documented
10720
10721 "wheel-down"
10722 Not documented
10723
10724 Since: 2.0
10725
10726 InputAxis (Enum)
10727
10728 Position axis of a pointer input device (mouse, tablet).
10729
10730 Values:
10731
10732 "x" Not documented
10733
10734 "y" Not documented
10735
10736 Since: 2.0
10737
10738 InputKeyEvent (Object)
10739
10740 Keyboard input event.
10741
10742 Members:
10743
10744 "key: KeyValue"
10745 Which key this event is for.
10746
10747 "down: boolean"
10748 True for key-down and false for key-up events.
10749
10750 Since: 2.0
10751
10752 InputBtnEvent (Object)
10753
10754 Pointer button input event.
10755
10756 Members:
10757
10758 "button: InputButton"
10759 Which button this event is for.
10760
10761 "down: boolean"
10762 True for key-down and false for key-up events.
10763
10764 Since: 2.0
10765
10766 InputMoveEvent (Object)
10767
10768 Pointer motion input event.
10769
10770 Members:
10771
10772 "axis: InputAxis"
10773 Which axis is referenced by "value".
10774
10775 "value: int"
10776 Pointer position. For absolute coordinates the valid range is 0 ->
10777 0x7ffff
10778
10779 Since: 2.0
10780
10781 InputEvent (Object)
10782
10783 Input event union.
10784
10785 Members:
10786
10787 "type"
10788 the input type, one of:
10789
10790 - 'key': Input event of Keyboard
10791
10792 - 'btn': Input event of pointer buttons
10793
10794 - 'rel': Input event of relative pointer motion
10795
10796 - 'abs': Input event of absolute pointer motion
10797
10798 "data: InputKeyEvent" when "type" is "key"
10799 "data: InputBtnEvent" when "type" is "btn"
10800 "data: InputMoveEvent" when "type" is "rel"
10801 "data: InputMoveEvent" when "type" is "abs"
10802
10803 Since: 2.0
10804
10805 input-send-event (Command) Send input event(s) to guest.
10806
10807 Arguments:
10808
10809 "device: string" (optional)
10810 display device to send event(s) to.
10811
10812 "head: int" (optional)
10813 head to send event(s) to, in case the display device supports
10814 multiple scanouts.
10815
10816 "events: array of InputEvent"
10817 List of InputEvent union.
10818
10819 Returns: Nothing on success.
10820
10821 The "device" and "head" parameters can be used to send the input event
10822 to specific input devices in case (a) multiple input devices of the
10823 same kind are added to the virtual machine and (b) you have configured
10824 input routing (see docs/multiseat.txt) for those input devices. The
10825 parameters work exactly like the device and head properties of input
10826 devices. If "device" is missing, only devices that have no input
10827 routing config are admissible. If "device" is specified, both input
10828 devices with and without input routing config are admissible, but
10829 devices with input routing config take precedence.
10830
10831 Since: 2.6
10832
10833 Note: The consoles are visible in the qom tree, under
10834 /backend/console[$index]. They have a device link and head property, so
10835 it is possible to map which console belongs to which device and
10836 display.
10837
10838 Example:
10839
10840 1. Press left mouse button.
10841
10842 -> { "execute": "input-send-event",
10843 "arguments": { "device": "video0",
10844 "events": [ { "type": "btn",
10845 "data" : { "down": true, "button": "left" } } ] } }
10846 <- { "return": {} }
10847
10848 -> { "execute": "input-send-event",
10849 "arguments": { "device": "video0",
10850 "events": [ { "type": "btn",
10851 "data" : { "down": false, "button": "left" } } ] } }
10852 <- { "return": {} }
10853
10854 2. Press ctrl-alt-del.
10855
10856 -> { "execute": "input-send-event",
10857 "arguments": { "events": [
10858 { "type": "key", "data" : { "down": true,
10859 "key": {"type": "qcode", "data": "ctrl" } } },
10860 { "type": "key", "data" : { "down": true,
10861 "key": {"type": "qcode", "data": "alt" } } },
10862 { "type": "key", "data" : { "down": true,
10863 "key": {"type": "qcode", "data": "delete" } } } ] } }
10864 <- { "return": {} }
10865
10866 3. Move mouse pointer to absolute coordinates (20000, 400).
10867
10868 -> { "execute": "input-send-event" ,
10869 "arguments": { "events": [
10870 { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
10871 { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
10872 <- { "return": {} }
10873
10874 GrabToggleKeys (Enum)
10875
10876 Keys to toggle input-linux between host and guest.
10877
10878 Values:
10879
10880 "ctrl-ctrl"
10881 Not documented
10882
10883 "alt-alt"
10884 Not documented
10885
10886 "shift-shift"
10887 Not documented
10888
10889 "meta-meta"
10890 Not documented
10891
10892 "scrolllock"
10893 Not documented
10894
10895 "ctrl-scrolllock"
10896 Not documented
10897
10898 Since: 4.0
10899
10900 DisplayGTK (Object)
10901
10902 GTK display options.
10903
10904 Members:
10905
10906 "grab-on-hover: boolean" (optional)
10907 Grab keyboard input on mouse hover.
10908
10909 "zoom-to-fit: boolean" (optional)
10910 Zoom guest display to fit into the host window. When turned off
10911 the host window will be resized instead. In case the display
10912 device can notify the guest on window resizes (virtio-gpu) this
10913 will default to "on", assuming the guest will resize the display to
10914 match the window size then. Otherwise it defaults to "off". Since
10915 3.1
10916
10917 Since: 2.12
10918
10919 DisplayEGLHeadless (Object)
10920
10921 EGL headless display options.
10922
10923 Members:
10924
10925 "rendernode: string" (optional)
10926 Which DRM render node should be used. Default is the first
10927 available node on the host.
10928
10929 Since: 3.1
10930
10931 DisplayGLMode (Enum)
10932
10933 Display OpenGL mode.
10934
10935 Values:
10936
10937 "off"
10938 Disable OpenGL (default).
10939
10940 "on"
10941 Use OpenGL, pick context type automatically. Would better be named
10942 'auto' but is called 'on' for backward compatibility with bool
10943 type.
10944
10945 "core"
10946 Use OpenGL with Core (desktop) Context.
10947
10948 "es"
10949 Use OpenGL with ES (embedded systems) Context.
10950
10951 Since: 3.0
10952
10953 DisplayCurses (Object)
10954
10955 Curses display options.
10956
10957 Members:
10958
10959 "charset: string" (optional)
10960 Font charset used by guest (default: CP437).
10961
10962 Since: 4.0
10963
10964 DisplayType (Enum)
10965
10966 Display (user interface) type.
10967
10968 Values:
10969
10970 "default"
10971 The default user interface, selecting from the first available of
10972 gtk, sdl, cocoa, and vnc.
10973
10974 "none"
10975 No user interface or video output display. The guest will still see
10976 an emulated graphics card, but its output will not be displayed to
10977 the QEMU user.
10978
10979 "gtk"
10980 The GTK user interface.
10981
10982 "sdl"
10983 The SDL user interface.
10984
10985 "egl-headless"
10986 No user interface, offload GL operations to a local DRI device.
10987 Graphical display need to be paired with VNC or Spice. (Since 3.1)
10988
10989 "curses"
10990 Display video output via curses. For graphics device models which
10991 support a text mode, QEMU can display this output using a
10992 curses/ncurses interface. Nothing is displayed when the graphics
10993 device is in graphical mode or if the graphics device does not
10994 support a text mode. Generally only the VGA device models support
10995 text mode.
10996
10997 "cocoa"
10998 The Cocoa user interface.
10999
11000 "spice-app"
11001 Set up a Spice server and run the default associated application to
11002 connect to it. The server will redirect the serial console and QEMU
11003 monitors. (Since 4.0)
11004
11005 Since: 2.12
11006
11007 DisplayOptions (Object)
11008
11009 Display (user interface) options.
11010
11011 Members:
11012
11013 "type: DisplayType"
11014 Which DisplayType qemu should use.
11015
11016 "full-screen: boolean" (optional)
11017 Start user interface in fullscreen mode (default: off).
11018
11019 "window-close: boolean" (optional)
11020 Allow to quit qemu with window close button (default: on).
11021
11022 "gl: DisplayGLMode" (optional)
11023 Enable OpenGL support (default: off).
11024
11025 The members of "DisplayGTK" when "type" is "gtk"
11026 The members of "DisplayCurses" when "type" is "curses"
11027 The members of "DisplayEGLHeadless" when "type" is "egl-headless"
11028
11029 Since: 2.12
11030
11031 query-display-options (Command) Returns information about display
11032 configuration
11033
11034 Returns: "DisplayOptions"
11035
11036 Since: 3.1
11037
11038 QAuthZListPolicy (Enum)
11039
11040 The authorization policy result
11041
11042 Values:
11043
11044 "deny"
11045 deny access
11046
11047 "allow"
11048 allow access
11049
11050 Since: 4.0
11051
11052 QAuthZListFormat (Enum)
11053
11054 The authorization policy match format
11055
11056 Values:
11057
11058 "exact"
11059 an exact string match
11060
11061 "glob"
11062 string with ? and * shell wildcard support
11063
11064 Since: 4.0
11065
11066 QAuthZListRule (Object)
11067
11068 A single authorization rule.
11069
11070 Members:
11071
11072 "match: string"
11073 a string or glob to match against a user identity
11074
11075 "policy: QAuthZListPolicy"
11076 the result to return if "match" evaluates to true
11077
11078 "format: QAuthZListFormat" (optional)
11079 the format of the "match" rule (default 'exact')
11080
11081 Since: 4.0
11082
11083 QAuthZListRuleListHack (Object)
11084
11085 Not exposed via QMP; hack to generate QAuthZListRuleList for use
11086 internally by the code.
11087
11088 Members:
11089
11090 "unused: array of QAuthZListRule"
11091 Not documented
11092
11093 Since: 4.0
11094
11095 Migration
11096 MigrationStats (Object)
11097
11098 Detailed migration status.
11099
11100 Members:
11101
11102 "transferred: int"
11103 amount of bytes already transferred to the target VM
11104
11105 "remaining: int"
11106 amount of bytes remaining to be transferred to the target VM
11107
11108 "total: int"
11109 total amount of bytes involved in the migration process
11110
11111 "duplicate: int"
11112 number of duplicate (zero) pages (since 1.2)
11113
11114 "skipped: int"
11115 number of skipped zero pages (since 1.5)
11116
11117 "normal: int"
11118 number of normal pages (since 1.2)
11119
11120 "normal-bytes: int"
11121 number of normal bytes sent (since 1.2)
11122
11123 "dirty-pages-rate: int"
11124 number of pages dirtied by second by the guest (since 1.3)
11125
11126 "mbps: number"
11127 throughput in megabits/sec. (since 1.6)
11128
11129 "dirty-sync-count: int"
11130 number of times that dirty ram was synchronized (since 2.1)
11131
11132 "postcopy-requests: int"
11133 The number of page requests received from the destination (since
11134 2.7)
11135
11136 "page-size: int"
11137 The number of bytes per page for the various page-based statistics
11138 (since 2.10)
11139
11140 "multifd-bytes: int"
11141 The number of bytes sent through multifd (since 3.0)
11142
11143 "pages-per-second: int"
11144 the number of memory pages transferred per second (Since 4.0)
11145
11146 Since: 0.14.0
11147
11148 XBZRLECacheStats (Object)
11149
11150 Detailed XBZRLE migration cache statistics
11151
11152 Members:
11153
11154 "cache-size: int"
11155 XBZRLE cache size
11156
11157 "bytes: int"
11158 amount of bytes already transferred to the target VM
11159
11160 "pages: int"
11161 amount of pages transferred to the target VM
11162
11163 "cache-miss: int"
11164 number of cache miss
11165
11166 "cache-miss-rate: number"
11167 rate of cache miss (since 2.1)
11168
11169 "overflow: int"
11170 number of overflows
11171
11172 Since: 1.2
11173
11174 CompressionStats (Object)
11175
11176 Detailed migration compression statistics
11177
11178 Members:
11179
11180 "pages: int"
11181 amount of pages compressed and transferred to the target VM
11182
11183 "busy: int"
11184 count of times that no free thread was available to compress data
11185
11186 "busy-rate: number"
11187 rate of thread busy
11188
11189 "compressed-size: int"
11190 amount of bytes after compression
11191
11192 "compression-rate: number"
11193 rate of compressed size
11194
11195 Since: 3.1
11196
11197 MigrationStatus (Enum)
11198
11199 An enumeration of migration status.
11200
11201 Values:
11202
11203 "none"
11204 no migration has ever happened.
11205
11206 "setup"
11207 migration process has been initiated.
11208
11209 "cancelling"
11210 in the process of cancelling migration.
11211
11212 "cancelled"
11213 cancelling migration is finished.
11214
11215 "active"
11216 in the process of doing migration.
11217
11218 "postcopy-active"
11219 like active, but now in postcopy mode. (since 2.5)
11220
11221 "postcopy-paused"
11222 during postcopy but paused. (since 3.0)
11223
11224 "postcopy-recover"
11225 trying to recover from a paused postcopy. (since 3.0)
11226
11227 "completed"
11228 migration is finished.
11229
11230 "failed"
11231 some error occurred during migration process.
11232
11233 "colo"
11234 VM is in the process of fault tolerance, VM can not get into this
11235 state unless colo capability is enabled for migration. (since 2.8)
11236
11237 "pre-switchover"
11238 Paused before device serialisation. (since 2.11)
11239
11240 "device"
11241 During device serialisation when pause-before-switchover is enabled
11242 (since 2.11)
11243
11244 "wait-unplug"
11245 wait for device unplug request by guest OS to be completed. (since
11246 4.2)
11247
11248 Since: 2.3
11249
11250 MigrationInfo (Object)
11251
11252 Information about current migration process.
11253
11254 Members:
11255
11256 "status: MigrationStatus" (optional)
11257 "MigrationStatus" describing the current migration status. If this
11258 field is not returned, no migration process has been initiated
11259
11260 "ram: MigrationStats" (optional)
11261 "MigrationStats" containing detailed migration status, only
11262 returned if status is 'active' or 'completed'(since 1.2)
11263
11264 "disk: MigrationStats" (optional)
11265 "MigrationStats" containing detailed disk migration status, only
11266 returned if status is 'active' and it is a block migration
11267
11268 "xbzrle-cache: XBZRLECacheStats" (optional)
11269 "XBZRLECacheStats" containing detailed XBZRLE migration statistics,
11270 only returned if XBZRLE feature is on and status is 'active' or
11271 'completed' (since 1.2)
11272
11273 "total-time: int" (optional)
11274 total amount of milliseconds since migration started. If migration
11275 has ended, it returns the total migration time. (since 1.2)
11276
11277 "downtime: int" (optional)
11278 only present when migration finishes correctly total downtime in
11279 milliseconds for the guest. (since 1.3)
11280
11281 "expected-downtime: int" (optional)
11282 only present while migration is active expected downtime in
11283 milliseconds for the guest in last walk of the dirty bitmap. (since
11284 1.3)
11285
11286 "setup-time: int" (optional)
11287 amount of setup time in milliseconds before the iterations begin
11288 but after the QMP command is issued. This is designed to provide an
11289 accounting of any activities (such as RDMA pinning) which may be
11290 expensive, but do not actually occur during the iterative migration
11291 rounds themselves. (since 1.6)
11292
11293 "cpu-throttle-percentage: int" (optional)
11294 percentage of time guest cpus are being throttled during auto-
11295 converge. This is only present when auto-converge has started
11296 throttling guest cpus. (Since 2.7)
11297
11298 "error-desc: string" (optional)
11299 the human readable error description string, when "status" is
11300 'failed'. Clients should not attempt to parse the error strings.
11301 (Since 2.7)
11302
11303 "postcopy-blocktime: int" (optional)
11304 total time when all vCPU were blocked during postcopy live
11305 migration. This is only present when the postcopy-blocktime
11306 migration capability is enabled. (Since 3.0)
11307
11308 "postcopy-vcpu-blocktime: array of int" (optional)
11309 list of the postcopy blocktime per vCPU. This is only present when
11310 the postcopy-blocktime migration capability is enabled. (Since 3.0)
11311
11312 "compression: CompressionStats" (optional)
11313 migration compression statistics, only returned if compression
11314 feature is on and status is 'active' or 'completed' (Since 3.1)
11315
11316 "socket-address: array of SocketAddress" (optional)
11317 Only used for tcp, to know what the real port is (Since 4.0)
11318
11319 Since: 0.14.0
11320
11321 query-migrate (Command) Returns information about current migration
11322 process. If migration is active there will be another json-object with
11323 RAM migration status and if block migration is active another one with
11324 block migration status.
11325
11326 Returns: "MigrationInfo"
11327
11328 Since: 0.14.0
11329
11330 Example:
11331
11332 1. Before the first migration
11333
11334 -> { "execute": "query-migrate" }
11335 <- { "return": {} }
11336
11337 2. Migration is done and has succeeded
11338
11339 -> { "execute": "query-migrate" }
11340 <- { "return": {
11341 "status": "completed",
11342 "total-time":12345,
11343 "setup-time":12345,
11344 "downtime":12345,
11345 "ram":{
11346 "transferred":123,
11347 "remaining":123,
11348 "total":246,
11349 "duplicate":123,
11350 "normal":123,
11351 "normal-bytes":123456,
11352 "dirty-sync-count":15
11353 }
11354 }
11355 }
11356
11357 3. Migration is done and has failed
11358
11359 -> { "execute": "query-migrate" }
11360 <- { "return": { "status": "failed" } }
11361
11362 4. Migration is being performed and is not a block migration:
11363
11364 -> { "execute": "query-migrate" }
11365 <- {
11366 "return":{
11367 "status":"active",
11368 "total-time":12345,
11369 "setup-time":12345,
11370 "expected-downtime":12345,
11371 "ram":{
11372 "transferred":123,
11373 "remaining":123,
11374 "total":246,
11375 "duplicate":123,
11376 "normal":123,
11377 "normal-bytes":123456,
11378 "dirty-sync-count":15
11379 }
11380 }
11381 }
11382
11383 5. Migration is being performed and is a block migration:
11384
11385 -> { "execute": "query-migrate" }
11386 <- {
11387 "return":{
11388 "status":"active",
11389 "total-time":12345,
11390 "setup-time":12345,
11391 "expected-downtime":12345,
11392 "ram":{
11393 "total":1057024,
11394 "remaining":1053304,
11395 "transferred":3720,
11396 "duplicate":123,
11397 "normal":123,
11398 "normal-bytes":123456,
11399 "dirty-sync-count":15
11400 },
11401 "disk":{
11402 "total":20971520,
11403 "remaining":20880384,
11404 "transferred":91136
11405 }
11406 }
11407 }
11408
11409 6. Migration is being performed and XBZRLE is active:
11410
11411 -> { "execute": "query-migrate" }
11412 <- {
11413 "return":{
11414 "status":"active",
11415 "total-time":12345,
11416 "setup-time":12345,
11417 "expected-downtime":12345,
11418 "ram":{
11419 "total":1057024,
11420 "remaining":1053304,
11421 "transferred":3720,
11422 "duplicate":10,
11423 "normal":3333,
11424 "normal-bytes":3412992,
11425 "dirty-sync-count":15
11426 },
11427 "xbzrle-cache":{
11428 "cache-size":67108864,
11429 "bytes":20971520,
11430 "pages":2444343,
11431 "cache-miss":2244,
11432 "cache-miss-rate":0.123,
11433 "overflow":34434
11434 }
11435 }
11436 }
11437
11438 MigrationCapability (Enum)
11439
11440 Migration capabilities enumeration
11441
11442 Values:
11443
11444 "xbzrle"
11445 Migration supports xbzrle (Xor Based Zero Run Length Encoding).
11446 This feature allows us to minimize migration traffic for certain
11447 work loads, by sending compressed difference of the pages
11448
11449 "rdma-pin-all"
11450 Controls whether or not the entire VM memory footprint is mlock()'d
11451 on demand or all at once. Refer to docs/rdma.txt for usage.
11452 Disabled by default. (since 2.0)
11453
11454 "zero-blocks"
11455 During storage migration encode blocks of zeroes efficiently. This
11456 essentially saves 1MB of zeroes per block on the wire. Enabling
11457 requires source and target VM to support this feature. To enable it
11458 is sufficient to enable the capability on the source VM. The
11459 feature is disabled by default. (since 1.6)
11460
11461 "compress"
11462 Use multiple compression threads to accelerate live migration.
11463 This feature can help to reduce the migration traffic, by sending
11464 compressed pages. Please note that if compress and xbzrle are both
11465 on, compress only takes effect in the ram bulk stage, after that,
11466 it will be disabled and only xbzrle takes effect, this can help to
11467 minimize migration traffic. The feature is disabled by default.
11468 (since 2.4 )
11469
11470 "events"
11471 generate events for each migration state change (since 2.4 )
11472
11473 "auto-converge"
11474 If enabled, QEMU will automatically throttle down the guest to
11475 speed up convergence of RAM migration. (since 1.6)
11476
11477 "postcopy-ram"
11478 Start executing on the migration target before all of RAM has been
11479 migrated, pulling the remaining pages along as needed. The capacity
11480 must have the same setting on both source and target or migration
11481 will not even start. NOTE: If the migration fails during postcopy
11482 the VM will fail. (since 2.6)
11483
11484 "x-colo"
11485 If enabled, migration will never end, and the state of the VM on
11486 the primary side will be migrated continuously to the VM on
11487 secondary side, this process is called COarse-Grain LOck Stepping
11488 (COLO) for Non-stop Service. (since 2.8)
11489
11490 "release-ram"
11491 if enabled, qemu will free the migrated ram pages on the source
11492 during postcopy-ram migration. (since 2.9)
11493
11494 "block"
11495 If enabled, QEMU will also migrate the contents of all block
11496 devices. Default is disabled. A possible alternative uses mirror
11497 jobs to a builtin NBD server on the destination, which offers more
11498 flexibility. (Since 2.10)
11499
11500 "return-path"
11501 If enabled, migration will use the return path even for precopy.
11502 (since 2.10)
11503
11504 "pause-before-switchover"
11505 Pause outgoing migration before serialising device state and before
11506 disabling block IO (since 2.11)
11507
11508 "multifd"
11509 Use more than one fd for migration (since 4.0)
11510
11511 "dirty-bitmaps"
11512 If enabled, QEMU will migrate named dirty bitmaps. (since 2.12)
11513
11514 "postcopy-blocktime"
11515 Calculate downtime for postcopy live migration (since 3.0)
11516
11517 "late-block-activate"
11518 If enabled, the destination will not activate block devices (and
11519 thus take locks) immediately at the end of migration. (since 3.0)
11520
11521 "x-ignore-shared"
11522 If enabled, QEMU will not migrate shared memory (since 4.0)
11523
11524 "validate-uuid"
11525 Send the UUID of the source to allow the destination to ensure it
11526 is the same. (since 4.2)
11527
11528 Since: 1.2
11529
11530 MigrationCapabilityStatus (Object)
11531
11532 Migration capability information
11533
11534 Members:
11535
11536 "capability: MigrationCapability"
11537 capability enum
11538
11539 "state: boolean"
11540 capability state bool
11541
11542 Since: 1.2
11543
11544 migrate-set-capabilities (Command) Enable/Disable the following
11545 migration capabilities (like xbzrle)
11546
11547 Arguments:
11548
11549 "capabilities: array of MigrationCapabilityStatus"
11550 json array of capability modifications to make
11551
11552 Since: 1.2
11553
11554 Example:
11555
11556 -> { "execute": "migrate-set-capabilities" , "arguments":
11557 { "capabilities": [ { "capability": "xbzrle", "state": true } ] } }
11558
11559 query-migrate-capabilities (Command) Returns information about the
11560 current migration capabilities status
11561
11562 Returns: "MigrationCapabilitiesStatus"
11563
11564 Since: 1.2
11565
11566 Example:
11567
11568 -> { "execute": "query-migrate-capabilities" }
11569 <- { "return": [
11570 {"state": false, "capability": "xbzrle"},
11571 {"state": false, "capability": "rdma-pin-all"},
11572 {"state": false, "capability": "auto-converge"},
11573 {"state": false, "capability": "zero-blocks"},
11574 {"state": false, "capability": "compress"},
11575 {"state": true, "capability": "events"},
11576 {"state": false, "capability": "postcopy-ram"},
11577 {"state": false, "capability": "x-colo"}
11578 ]}
11579
11580 MigrationParameter (Enum)
11581
11582 Migration parameters enumeration
11583
11584 Values:
11585
11586 "announce-initial"
11587 Initial delay (in milliseconds) before sending the first announce
11588 (Since 4.0)
11589
11590 "announce-max"
11591 Maximum delay (in milliseconds) between packets in the announcement
11592 (Since 4.0)
11593
11594 "announce-rounds"
11595 Number of self-announce packets sent after migration (Since 4.0)
11596
11597 "announce-step"
11598 Increase in delay (in milliseconds) between subsequent packets in
11599 the announcement (Since 4.0)
11600
11601 "compress-level"
11602 Set the compression level to be used in live migration, the
11603 compression level is an integer between 0 and 9, where 0 means no
11604 compression, 1 means the best compression speed, and 9 means best
11605 compression ratio which will consume more CPU.
11606
11607 "compress-threads"
11608 Set compression thread count to be used in live migration, the
11609 compression thread count is an integer between 1 and 255.
11610
11611 "compress-wait-thread"
11612 Controls behavior when all compression threads are currently busy.
11613 If true (default), wait for a free compression thread to become
11614 available; otherwise, send the page uncompressed. (Since 3.1)
11615
11616 "decompress-threads"
11617 Set decompression thread count to be used in live migration, the
11618 decompression thread count is an integer between 1 and 255.
11619 Usually, decompression is at least 4 times as fast as compression,
11620 so set the decompress-threads to the number about 1/4 of compress-
11621 threads is adequate.
11622
11623 "cpu-throttle-initial"
11624 Initial percentage of time guest cpus are throttled when migration
11625 auto-converge is activated. The default value is 20. (Since 2.7)
11626
11627 "cpu-throttle-increment"
11628 throttle percentage increase each time auto-converge detects that
11629 migration is not making progress. The default value is 10. (Since
11630 2.7)
11631
11632 "tls-creds"
11633 ID of the 'tls-creds' object that provides credentials for
11634 establishing a TLS connection over the migration data channel. On
11635 the outgoing side of the migration, the credentials must be for a
11636 'client' endpoint, while for the incoming side the credentials must
11637 be for a 'server' endpoint. Setting this will enable TLS for all
11638 migrations. The default is unset, resulting in unsecured migration
11639 at the QEMU level. (Since 2.7)
11640
11641 "tls-hostname"
11642 hostname of the target host for the migration. This is required
11643 when using x509 based TLS credentials and the migration URI does
11644 not already include a hostname. For example if using fd: or exec:
11645 based migration, the hostname must be provided so that the server's
11646 x509 certificate identity can be validated. (Since 2.7)
11647
11648 "tls-authz"
11649 ID of the 'authz' object subclass that provides access control
11650 checking of the TLS x509 certificate distinguished name. This
11651 object is only resolved at time of use, so can be deleted and
11652 recreated on the fly while the migration server is active. If
11653 missing, it will default to denying access (Since 4.0)
11654
11655 "max-bandwidth"
11656 to set maximum speed for migration. maximum speed in bytes per
11657 second. (Since 2.8)
11658
11659 "downtime-limit"
11660 set maximum tolerated downtime for migration. maximum downtime in
11661 milliseconds (Since 2.8)
11662
11663 "x-checkpoint-delay"
11664 The delay time (in ms) between two COLO checkpoints in periodic
11665 mode. (Since 2.8)
11666
11667 "block-incremental"
11668 Affects how much storage is migrated when the block migration
11669 capability is enabled. When false, the entire storage backing
11670 chain is migrated into a flattened image at the destination; when
11671 true, only the active qcow2 layer is migrated and the destination
11672 must already have access to the same backing chain as was used on
11673 the source. (since 2.10)
11674
11675 "multifd-channels"
11676 Number of channels used to migrate data in parallel. This is the
11677 same number that the number of sockets used for migration. The
11678 default value is 2 (since 4.0)
11679
11680 "xbzrle-cache-size"
11681 cache size to be used by XBZRLE migration. It needs to be a
11682 multiple of the target page size and a power of 2 (Since 2.11)
11683
11684 "max-postcopy-bandwidth"
11685 Background transfer bandwidth during postcopy. Defaults to 0
11686 (unlimited). In bytes per second. (Since 3.0)
11687
11688 "max-cpu-throttle"
11689 maximum cpu throttle percentage. Defaults to 99. (Since 3.1)
11690
11691 Since: 2.4
11692
11693 MigrateSetParameters (Object)
11694
11695 Members:
11696
11697 "announce-initial: int" (optional)
11698 Initial delay (in milliseconds) before sending the first announce
11699 (Since 4.0)
11700
11701 "announce-max: int" (optional)
11702 Maximum delay (in milliseconds) between packets in the announcement
11703 (Since 4.0)
11704
11705 "announce-rounds: int" (optional)
11706 Number of self-announce packets sent after migration (Since 4.0)
11707
11708 "announce-step: int" (optional)
11709 Increase in delay (in milliseconds) between subsequent packets in
11710 the announcement (Since 4.0)
11711
11712 "compress-level: int" (optional)
11713 compression level
11714
11715 "compress-threads: int" (optional)
11716 compression thread count
11717
11718 "compress-wait-thread: boolean" (optional)
11719 Controls behavior when all compression threads are currently busy.
11720 If true (default), wait for a free compression thread to become
11721 available; otherwise, send the page uncompressed. (Since 3.1)
11722
11723 "decompress-threads: int" (optional)
11724 decompression thread count
11725
11726 "cpu-throttle-initial: int" (optional)
11727 Initial percentage of time guest cpus are throttled when migration
11728 auto-converge is activated. The default value is 20. (Since 2.7)
11729
11730 "cpu-throttle-increment: int" (optional)
11731 throttle percentage increase each time auto-converge detects that
11732 migration is not making progress. The default value is 10. (Since
11733 2.7)
11734
11735 "tls-creds: StrOrNull" (optional)
11736 ID of the 'tls-creds' object that provides credentials for
11737 establishing a TLS connection over the migration data channel. On
11738 the outgoing side of the migration, the credentials must be for a
11739 'client' endpoint, while for the incoming side the credentials must
11740 be for a 'server' endpoint. Setting this to a non-empty string
11741 enables TLS for all migrations. An empty string means that QEMU
11742 will use plain text mode for migration, rather than TLS (Since 2.9)
11743 Previously (since 2.7), this was reported by omitting tls-creds
11744 instead.
11745
11746 "tls-hostname: StrOrNull" (optional)
11747 hostname of the target host for the migration. This is required
11748 when using x509 based TLS credentials and the migration URI does
11749 not already include a hostname. For example if using fd: or exec:
11750 based migration, the hostname must be provided so that the server's
11751 x509 certificate identity can be validated. (Since 2.7) An empty
11752 string means that QEMU will use the hostname associated with the
11753 migration URI, if any. (Since 2.9) Previously (since 2.7), this was
11754 reported by omitting tls-hostname instead.
11755
11756 "max-bandwidth: int" (optional)
11757 to set maximum speed for migration. maximum speed in bytes per
11758 second. (Since 2.8)
11759
11760 "downtime-limit: int" (optional)
11761 set maximum tolerated downtime for migration. maximum downtime in
11762 milliseconds (Since 2.8)
11763
11764 "x-checkpoint-delay: int" (optional)
11765 the delay time between two COLO checkpoints. (Since 2.8)
11766
11767 "block-incremental: boolean" (optional)
11768 Affects how much storage is migrated when the block migration
11769 capability is enabled. When false, the entire storage backing
11770 chain is migrated into a flattened image at the destination; when
11771 true, only the active qcow2 layer is migrated and the destination
11772 must already have access to the same backing chain as was used on
11773 the source. (since 2.10)
11774
11775 "multifd-channels: int" (optional)
11776 Number of channels used to migrate data in parallel. This is the
11777 same number that the number of sockets used for migration. The
11778 default value is 2 (since 4.0)
11779
11780 "xbzrle-cache-size: int" (optional)
11781 cache size to be used by XBZRLE migration. It needs to be a
11782 multiple of the target page size and a power of 2 (Since 2.11)
11783
11784 "max-postcopy-bandwidth: int" (optional)
11785 Background transfer bandwidth during postcopy. Defaults to 0
11786 (unlimited). In bytes per second. (Since 3.0)
11787
11788 "max-cpu-throttle: int" (optional)
11789 maximum cpu throttle percentage. The default value is 99. (Since
11790 3.1)
11791
11792 "tls-authz: StrOrNull" (optional)
11793 Not documented
11794
11795 Since: 2.4
11796
11797 migrate-set-parameters (Command) Set various migration parameters.
11798
11799 Arguments: the members of "MigrateSetParameters"
11800
11801 Since: 2.4
11802
11803 Example:
11804
11805 -> { "execute": "migrate-set-parameters" ,
11806 "arguments": { "compress-level": 1 } }
11807
11808 MigrationParameters (Object)
11809
11810 The optional members aren't actually optional.
11811
11812 Members:
11813
11814 "announce-initial: int" (optional)
11815 Initial delay (in milliseconds) before sending the first announce
11816 (Since 4.0)
11817
11818 "announce-max: int" (optional)
11819 Maximum delay (in milliseconds) between packets in the announcement
11820 (Since 4.0)
11821
11822 "announce-rounds: int" (optional)
11823 Number of self-announce packets sent after migration (Since 4.0)
11824
11825 "announce-step: int" (optional)
11826 Increase in delay (in milliseconds) between subsequent packets in
11827 the announcement (Since 4.0)
11828
11829 "compress-level: int" (optional)
11830 compression level
11831
11832 "compress-threads: int" (optional)
11833 compression thread count
11834
11835 "compress-wait-thread: boolean" (optional)
11836 Controls behavior when all compression threads are currently busy.
11837 If true (default), wait for a free compression thread to become
11838 available; otherwise, send the page uncompressed. (Since 3.1)
11839
11840 "decompress-threads: int" (optional)
11841 decompression thread count
11842
11843 "cpu-throttle-initial: int" (optional)
11844 Initial percentage of time guest cpus are throttled when migration
11845 auto-converge is activated. (Since 2.7)
11846
11847 "cpu-throttle-increment: int" (optional)
11848 throttle percentage increase each time auto-converge detects that
11849 migration is not making progress. (Since 2.7)
11850
11851 "tls-creds: string" (optional)
11852 ID of the 'tls-creds' object that provides credentials for
11853 establishing a TLS connection over the migration data channel. On
11854 the outgoing side of the migration, the credentials must be for a
11855 'client' endpoint, while for the incoming side the credentials must
11856 be for a 'server' endpoint. An empty string means that QEMU will
11857 use plain text mode for migration, rather than TLS (Since 2.7)
11858 Note: 2.8 reports this by omitting tls-creds instead.
11859
11860 "tls-hostname: string" (optional)
11861 hostname of the target host for the migration. This is required
11862 when using x509 based TLS credentials and the migration URI does
11863 not already include a hostname. For example if using fd: or exec:
11864 based migration, the hostname must be provided so that the server's
11865 x509 certificate identity can be validated. (Since 2.7) An empty
11866 string means that QEMU will use the hostname associated with the
11867 migration URI, if any. (Since 2.9) Note: 2.8 reports this by
11868 omitting tls-hostname instead.
11869
11870 "tls-authz: string" (optional)
11871 ID of the 'authz' object subclass that provides access control
11872 checking of the TLS x509 certificate distinguished name. (Since
11873 4.0)
11874
11875 "max-bandwidth: int" (optional)
11876 to set maximum speed for migration. maximum speed in bytes per
11877 second. (Since 2.8)
11878
11879 "downtime-limit: int" (optional)
11880 set maximum tolerated downtime for migration. maximum downtime in
11881 milliseconds (Since 2.8)
11882
11883 "x-checkpoint-delay: int" (optional)
11884 the delay time between two COLO checkpoints. (Since 2.8)
11885
11886 "block-incremental: boolean" (optional)
11887 Affects how much storage is migrated when the block migration
11888 capability is enabled. When false, the entire storage backing
11889 chain is migrated into a flattened image at the destination; when
11890 true, only the active qcow2 layer is migrated and the destination
11891 must already have access to the same backing chain as was used on
11892 the source. (since 2.10)
11893
11894 "multifd-channels: int" (optional)
11895 Number of channels used to migrate data in parallel. This is the
11896 same number that the number of sockets used for migration. The
11897 default value is 2 (since 4.0)
11898
11899 "xbzrle-cache-size: int" (optional)
11900 cache size to be used by XBZRLE migration. It needs to be a
11901 multiple of the target page size and a power of 2 (Since 2.11)
11902
11903 "max-postcopy-bandwidth: int" (optional)
11904 Background transfer bandwidth during postcopy. Defaults to 0
11905 (unlimited). In bytes per second. (Since 3.0)
11906
11907 "max-cpu-throttle: int" (optional)
11908 maximum cpu throttle percentage. Defaults to 99. (Since 3.1)
11909
11910 Since: 2.4
11911
11912 query-migrate-parameters (Command) Returns information about the
11913 current migration parameters
11914
11915 Returns: "MigrationParameters"
11916
11917 Since: 2.4
11918
11919 Example:
11920
11921 -> { "execute": "query-migrate-parameters" }
11922 <- { "return": {
11923 "decompress-threads": 2,
11924 "cpu-throttle-increment": 10,
11925 "compress-threads": 8,
11926 "compress-level": 1,
11927 "cpu-throttle-initial": 20,
11928 "max-bandwidth": 33554432,
11929 "downtime-limit": 300
11930 }
11931 }
11932
11933 client_migrate_info (Command) Set migration information for remote
11934 display. This makes the server ask the client to automatically
11935 reconnect using the new parameters once migration finished
11936 successfully. Only implemented for SPICE.
11937
11938 Arguments:
11939
11940 "protocol: string"
11941 must be "spice"
11942
11943 "hostname: string"
11944 migration target hostname
11945
11946 "port: int" (optional)
11947 spice tcp port for plaintext channels
11948
11949 "tls-port: int" (optional)
11950 spice tcp port for tls-secured channels
11951
11952 "cert-subject: string" (optional)
11953 server certificate subject
11954
11955 Since: 0.14.0
11956
11957 Example:
11958
11959 -> { "execute": "client_migrate_info",
11960 "arguments": { "protocol": "spice",
11961 "hostname": "virt42.lab.kraxel.org",
11962 "port": 1234 } }
11963 <- { "return": {} }
11964
11965 migrate-start-postcopy (Command) Followup to a migration command to
11966 switch the migration to postcopy mode. The postcopy-ram capability
11967 must be set on both source and destination before the original
11968 migration command.
11969
11970 Since: 2.5
11971
11972 Example:
11973
11974 -> { "execute": "migrate-start-postcopy" }
11975 <- { "return": {} }
11976
11977 MIGRATION (Event) Emitted when a migration event happens
11978
11979 Arguments:
11980
11981 "status: MigrationStatus"
11982 "MigrationStatus" describing the current migration status.
11983
11984 Since: 2.4
11985
11986 Example:
11987
11988 <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
11989 "event": "MIGRATION",
11990 "data": {"status": "completed"} }
11991
11992 MIGRATION_PASS (Event) Emitted from the source side of a migration at
11993 the start of each pass (when it syncs the dirty bitmap)
11994
11995 Arguments:
11996
11997 "pass: int"
11998 An incrementing count (starting at 1 on the first pass)
11999
12000 Since: 2.6
12001
12002 Example:
12003
12004 { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
12005 "event": "MIGRATION_PASS", "data": {"pass": 2} }
12006
12007 COLOMessage (Enum)
12008
12009 The message transmission between Primary side and Secondary side.
12010
12011 Values:
12012
12013 "checkpoint-ready"
12014 Secondary VM (SVM) is ready for checkpointing
12015
12016 "checkpoint-request"
12017 Primary VM (PVM) tells SVM to prepare for checkpointing
12018
12019 "checkpoint-reply"
12020 SVM gets PVM's checkpoint request
12021
12022 "vmstate-send"
12023 VM's state will be sent by PVM.
12024
12025 "vmstate-size"
12026 The total size of VMstate.
12027
12028 "vmstate-received"
12029 VM's state has been received by SVM.
12030
12031 "vmstate-loaded"
12032 VM's state has been loaded by SVM.
12033
12034 Since: 2.8
12035
12036 COLOMode (Enum)
12037
12038 The COLO current mode.
12039
12040 Values:
12041
12042 "none"
12043 COLO is disabled.
12044
12045 "primary"
12046 COLO node in primary side.
12047
12048 "secondary"
12049 COLO node in slave side.
12050
12051 Since: 2.8
12052
12053 FailoverStatus (Enum)
12054
12055 An enumeration of COLO failover status
12056
12057 Values:
12058
12059 "none"
12060 no failover has ever happened
12061
12062 "require"
12063 got failover requirement but not handled
12064
12065 "active"
12066 in the process of doing failover
12067
12068 "completed"
12069 finish the process of failover
12070
12071 "relaunch"
12072 restart the failover process, from 'none' -> 'completed' (Since
12073 2.9)
12074
12075 Since: 2.8
12076
12077 COLO_EXIT (Event) Emitted when VM finishes COLO mode due to some
12078 errors happening or at the request of users.
12079
12080 Arguments:
12081
12082 "mode: COLOMode"
12083 report COLO mode when COLO exited.
12084
12085 "reason: COLOExitReason"
12086 describes the reason for the COLO exit.
12087
12088 Since: 3.1
12089
12090 Example:
12091
12092 <- { "timestamp": {"seconds": 2032141960, "microseconds": 417172},
12093 "event": "COLO_EXIT", "data": {"mode": "primary", "reason": "request" } }
12094
12095 COLOExitReason (Enum)
12096
12097 The reason for a COLO exit.
12098
12099 Values:
12100
12101 "none"
12102 failover has never happened. This state does not occur in the
12103 COLO_EXIT event, and is only visible in the result of query-colo-
12104 status.
12105
12106 "request"
12107 COLO exit is due to an external request.
12108
12109 "error"
12110 COLO exit is due to an internal error.
12111
12112 "processing"
12113 COLO is currently handling a failover (since 4.0).
12114
12115 Since: 3.1
12116
12117 x-colo-lost-heartbeat (Command) Tell qemu that heartbeat is lost,
12118 request it to do takeover procedures. If this command is sent to the
12119 PVM, the Primary side will exit COLO mode. If sent to the Secondary,
12120 the Secondary side will run failover work, then takes over server
12121 operation to become the service VM.
12122
12123 Since: 2.8
12124
12125 Example:
12126
12127 -> { "execute": "x-colo-lost-heartbeat" }
12128 <- { "return": {} }
12129
12130 migrate_cancel (Command) Cancel the current executing migration
12131 process.
12132
12133 Returns: nothing on success
12134
12135 Notes: This command succeeds even if there is no migration process
12136 running.
12137
12138 Since: 0.14.0
12139
12140 Example:
12141
12142 -> { "execute": "migrate_cancel" }
12143 <- { "return": {} }
12144
12145 migrate-continue (Command) Continue migration when it's in a paused
12146 state.
12147
12148 Arguments:
12149
12150 "state: MigrationStatus"
12151 The state the migration is currently expected to be in
12152
12153 Returns: nothing on success
12154
12155 Since: 2.11
12156
12157 Example:
12158
12159 -> { "execute": "migrate-continue" , "arguments":
12160 { "state": "pre-switchover" } }
12161 <- { "return": {} }
12162
12163 migrate_set_downtime (Command) Set maximum tolerated downtime for
12164 migration.
12165
12166 Arguments:
12167
12168 "value: number"
12169 maximum downtime in seconds
12170
12171 Returns: nothing on success
12172
12173 Notes: This command is deprecated in favor of 'migrate-set-parameters'
12174
12175 Since: 0.14.0
12176
12177 Example:
12178
12179 -> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
12180 <- { "return": {} }
12181
12182 migrate_set_speed (Command) Set maximum speed for migration.
12183
12184 Arguments:
12185
12186 "value: int"
12187 maximum speed in bytes per second.
12188
12189 Returns: nothing on success
12190
12191 Notes: This command is deprecated in favor of 'migrate-set-parameters'
12192
12193 Since: 0.14.0
12194
12195 Example:
12196
12197 -> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
12198 <- { "return": {} }
12199
12200 migrate-set-cache-size (Command) Set cache size to be used by XBZRLE
12201 migration
12202
12203 Arguments:
12204
12205 "value: int"
12206 cache size in bytes
12207
12208 The size will be rounded down to the nearest power of 2. The cache
12209 size can be modified before and during ongoing migration
12210
12211 Returns: nothing on success
12212
12213 Notes: This command is deprecated in favor of 'migrate-set-parameters'
12214
12215 Since: 1.2
12216
12217 Example:
12218
12219 -> { "execute": "migrate-set-cache-size",
12220 "arguments": { "value": 536870912 } }
12221 <- { "return": {} }
12222
12223 query-migrate-cache-size (Command) Query migration XBZRLE cache size
12224
12225 Returns: XBZRLE cache size in bytes
12226
12227 Notes: This command is deprecated in favor of
12228 'query-migrate-parameters'
12229
12230 Since: 1.2
12231
12232 Example:
12233
12234 -> { "execute": "query-migrate-cache-size" }
12235 <- { "return": 67108864 }
12236
12237 migrate (Command) Migrates the current running guest to another
12238 Virtual Machine.
12239
12240 Arguments:
12241
12242 "uri: string"
12243 the Uniform Resource Identifier of the destination VM
12244
12245 "blk: boolean" (optional)
12246 do block migration (full disk copy)
12247
12248 "inc: boolean" (optional)
12249 incremental disk copy migration
12250
12251 "detach: boolean" (optional)
12252 this argument exists only for compatibility reasons and is ignored
12253 by QEMU
12254
12255 "resume: boolean" (optional)
12256 resume one paused migration, default "off". (since 3.0)
12257
12258 Returns: nothing on success
12259
12260 Since: 0.14.0
12261
12262 Notes:
12263
12264 1. The 'query-migrate' command should be used to check migration's
12265 progress and final result (this information is provided by the
12266 'status' member)
12267
12268 2. All boolean arguments default to false
12269
12270 3. The user Monitor's "detach" argument is invalid in QMP and should
12271 not be used
12272
12273 Example:
12274
12275 -> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
12276 <- { "return": {} }
12277
12278 migrate-incoming (Command) Start an incoming migration, the qemu must
12279 have been started with -incoming defer
12280
12281 Arguments:
12282
12283 "uri: string"
12284 The Uniform Resource Identifier identifying the source or address
12285 to listen on
12286
12287 Returns: nothing on success
12288
12289 Since: 2.3
12290
12291 Notes:
12292
12293 1. It's a bad idea to use a string for the uri, but it needs to stay
12294 compatible with -incoming and the format of the uri is already
12295 exposed above libvirt.
12296
12297 2. QEMU must be started with -incoming defer to allow migrate-incoming
12298 to be used.
12299
12300 3. The uri format is the same as for -incoming
12301
12302 Example:
12303
12304 -> { "execute": "migrate-incoming",
12305 "arguments": { "uri": "tcp::4446" } }
12306 <- { "return": {} }
12307
12308 xen-save-devices-state (Command) Save the state of all devices to
12309 file. The RAM and the block devices of the VM are not saved by this
12310 command.
12311
12312 Arguments:
12313
12314 "filename: string"
12315 the file to save the state of the devices to as binary data. See
12316 xen-save-devices-state.txt for a description of the binary format.
12317
12318 "live: boolean" (optional)
12319 Optional argument to ask QEMU to treat this command as part of a
12320 live migration. Default to true. (since 2.11)
12321
12322 Returns: Nothing on success
12323
12324 Since: 1.1
12325
12326 Example:
12327
12328 -> { "execute": "xen-save-devices-state",
12329 "arguments": { "filename": "/tmp/save" } }
12330 <- { "return": {} }
12331
12332 xen-set-replication (Command) Enable or disable replication.
12333
12334 Arguments:
12335
12336 "enable: boolean"
12337 true to enable, false to disable.
12338
12339 "primary: boolean"
12340 true for primary or false for secondary.
12341
12342 "failover: boolean" (optional)
12343 true to do failover, false to stop. but cannot be specified if
12344 'enable' is true. default value is false.
12345
12346 Returns: nothing.
12347
12348 Example:
12349
12350 -> { "execute": "xen-set-replication",
12351 "arguments": {"enable": true, "primary": false} }
12352 <- { "return": {} }
12353
12354 Since: 2.9
12355
12356 If: "defined(CONFIG_REPLICATION)"
12357
12358 ReplicationStatus (Object)
12359
12360 The result format for 'query-xen-replication-status'.
12361
12362 Members:
12363
12364 "error: boolean"
12365 true if an error happened, false if replication is normal.
12366
12367 "desc: string" (optional)
12368 the human readable error description string, when "error" is
12369 'true'.
12370
12371 Since: 2.9
12372
12373 If: "defined(CONFIG_REPLICATION)"
12374
12375 query-xen-replication-status (Command) Query replication status while
12376 the vm is running.
12377
12378 Returns: A "ReplicationResult" object showing the status.
12379
12380 Example:
12381
12382 -> { "execute": "query-xen-replication-status" }
12383 <- { "return": { "error": false } }
12384
12385 Since: 2.9
12386
12387 If: "defined(CONFIG_REPLICATION)"
12388
12389 xen-colo-do-checkpoint (Command) Xen uses this command to notify
12390 replication to trigger a checkpoint.
12391
12392 Returns: nothing.
12393
12394 Example:
12395
12396 -> { "execute": "xen-colo-do-checkpoint" }
12397 <- { "return": {} }
12398
12399 Since: 2.9
12400
12401 If: "defined(CONFIG_REPLICATION)"
12402
12403 COLOStatus (Object)
12404
12405 The result format for 'query-colo-status'.
12406
12407 Members:
12408
12409 "mode: COLOMode"
12410 COLO running mode. If COLO is running, this field will return
12411 'primary' or 'secondary'.
12412
12413 "last-mode: COLOMode"
12414 COLO last running mode. If COLO is running, this field will return
12415 same like mode field, after failover we can use this field to get
12416 last colo mode. (since 4.0)
12417
12418 "reason: COLOExitReason"
12419 describes the reason for the COLO exit.
12420
12421 Since: 3.1
12422
12423 query-colo-status (Command) Query COLO status while the vm is running.
12424
12425 Returns: A "COLOStatus" object showing the status.
12426
12427 Example:
12428
12429 -> { "execute": "query-colo-status" }
12430 <- { "return": { "mode": "primary", "reason": "request" } }
12431
12432 Since: 3.1
12433
12434 migrate-recover (Command) Provide a recovery migration stream URI.
12435
12436 Arguments:
12437
12438 "uri: string"
12439 the URI to be used for the recovery of migration stream.
12440
12441 Returns: nothing.
12442
12443 Example:
12444
12445 -> { "execute": "migrate-recover",
12446 "arguments": { "uri": "tcp:192.168.1.200:12345" } }
12447 <- { "return": {} }
12448
12449 Since: 3.0
12450
12451 migrate-pause (Command) Pause a migration. Currently it only supports
12452 postcopy.
12453
12454 Returns: nothing.
12455
12456 Example:
12457
12458 -> { "execute": "migrate-pause" }
12459 <- { "return": {} }
12460
12461 Since: 3.0
12462
12463 UNPLUG_PRIMARY (Event) Emitted from source side of a migration when
12464 migration state is WAIT_UNPLUG. Device was unplugged by guest operating
12465 system. Device resources in QEMU are kept on standby to be able to re-
12466 plug it in case of migration failure.
12467
12468 Arguments:
12469
12470 "device-id: string"
12471 QEMU device id of the unplugged device
12472
12473 Since: 4.2
12474
12475 Example:
12476
12477 {"event": "UNPLUG_PRIMARY", "data": {"device-id": "hostdev0"} }
12478
12479 Transactions
12480 Abort (Object)
12481
12482 This action can be used to test transaction failure.
12483
12484 Since: 1.6
12485
12486 ActionCompletionMode (Enum)
12487
12488 An enumeration of Transactional completion modes.
12489
12490 Values:
12491
12492 "individual"
12493 Do not attempt to cancel any other Actions if any Actions fail
12494 after the Transaction request succeeds. All Actions that can
12495 complete successfully will do so without waiting on others. This
12496 is the default.
12497
12498 "grouped"
12499 If any Action fails after the Transaction succeeds, cancel all
12500 Actions. Actions do not complete until all Actions are ready to
12501 complete. May be rejected by Actions that do not support this
12502 completion mode.
12503
12504 Since: 2.5
12505
12506 TransactionAction (Object)
12507
12508 A discriminated record of operations that can be performed with
12509 "transaction". Action "type" can be:
12510
12511 - "abort": since 1.6
12512
12513 - "block-dirty-bitmap-add": since 2.5
12514
12515 - "block-dirty-bitmap-remove": since 4.2
12516
12517 - "block-dirty-bitmap-clear": since 2.5
12518
12519 - "block-dirty-bitmap-enable": since 4.0
12520
12521 - "block-dirty-bitmap-disable": since 4.0
12522
12523 - "block-dirty-bitmap-merge": since 4.0
12524
12525 - "blockdev-backup": since 2.3
12526
12527 - "blockdev-snapshot": since 2.5
12528
12529 - "blockdev-snapshot-internal-sync": since 1.7
12530
12531 - "blockdev-snapshot-sync": since 1.1
12532
12533 - "drive-backup": since 1.6
12534
12535 Members:
12536
12537 "type"
12538 One of "abort", "block-dirty-bitmap-add", "block-dirty-bitmap-
12539 remove", "block-dirty-bitmap-clear", "block-dirty-bitmap-enable",
12540 "block-dirty-bitmap-disable", "block-dirty-bitmap-merge",
12541 "blockdev-backup", "blockdev-snapshot", "blockdev-snapshot-
12542 internal-sync", "blockdev-snapshot-sync", "drive-backup"
12543
12544 "data: Abort" when "type" is "abort"
12545 "data: BlockDirtyBitmapAdd" when "type" is "block-dirty-bitmap-add"
12546 "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-remove"
12547 "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-clear"
12548 "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-enable"
12549 "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-disable"
12550 "data: BlockDirtyBitmapMerge" when "type" is "block-dirty-bitmap-merge"
12551 "data: BlockdevBackup" when "type" is "blockdev-backup"
12552 "data: BlockdevSnapshot" when "type" is "blockdev-snapshot"
12553 "data: BlockdevSnapshotInternal" when "type" is "blockdev-snapshot-
12554 internal-sync"
12555 "data: BlockdevSnapshotSync" when "type" is "blockdev-snapshot-sync"
12556 "data: DriveBackup" when "type" is "drive-backup"
12557
12558 Since: 1.1
12559
12560 TransactionProperties (Object)
12561
12562 Optional arguments to modify the behavior of a Transaction.
12563
12564 Members:
12565
12566 "completion-mode: ActionCompletionMode" (optional)
12567 Controls how jobs launched asynchronously by Actions will complete
12568 or fail as a group. See "ActionCompletionMode" for details.
12569
12570 Since: 2.5
12571
12572 transaction (Command) Executes a number of transactionable QMP
12573 commands atomically. If any operation fails, then the entire set of
12574 actions will be abandoned and the appropriate error returned.
12575
12576 For external snapshots, the dictionary contains the device, the file to
12577 use for the new snapshot, and the format. The default format, if not
12578 specified, is qcow2.
12579
12580 Each new snapshot defaults to being created by QEMU (wiping any
12581 contents if the file already exists), but it is also possible to reuse
12582 an externally-created file. In the latter case, you should ensure that
12583 the new image file has the same contents as the current one; QEMU
12584 cannot perform any meaningful check. Typically this is achieved by
12585 using the current image file as the backing file for the new image.
12586
12587 On failure, the original disks pre-snapshot attempt will be used.
12588
12589 For internal snapshots, the dictionary contains the device and the
12590 snapshot's name. If an internal snapshot matching name already exists,
12591 the request will be rejected. Only some image formats support it, for
12592 example, qcow2, rbd, and sheepdog.
12593
12594 On failure, qemu will try delete the newly created internal snapshot in
12595 the transaction. When an I/O error occurs during deletion, the user
12596 needs to fix it later with qemu-img or other command.
12597
12598 Arguments:
12599
12600 "actions: array of TransactionAction"
12601 List of "TransactionAction"; information needed for the respective
12602 operations.
12603
12604 "properties: TransactionProperties" (optional)
12605 structure of additional options to control the execution of the
12606 transaction. See "TransactionProperties" for additional detail.
12607
12608 Returns: nothing on success
12609
12610 Errors depend on the operations of the transaction
12611
12612 Note: The transaction aborts on the first failure. Therefore, there
12613 will be information on only one failed operation returned in an error
12614 condition, and subsequent actions will not have been attempted.
12615
12616 Since: 1.1
12617
12618 Example:
12619
12620 -> { "execute": "transaction",
12621 "arguments": { "actions": [
12622 { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
12623 "snapshot-file": "/some/place/my-image",
12624 "format": "qcow2" } },
12625 { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
12626 "snapshot-file": "/some/place/my-image2",
12627 "snapshot-node-name": "node3432",
12628 "mode": "existing",
12629 "format": "qcow2" } },
12630 { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
12631 "snapshot-file": "/some/place/my-image2",
12632 "mode": "existing",
12633 "format": "qcow2" } },
12634 { "type": "blockdev-snapshot-internal-sync", "data" : {
12635 "device": "ide-hd2",
12636 "name": "snapshot0" } } ] } }
12637 <- { "return": {} }
12638
12639 Tracing
12640 TraceEventState (Enum)
12641
12642 State of a tracing event.
12643
12644 Values:
12645
12646 "unavailable"
12647 The event is statically disabled.
12648
12649 "disabled"
12650 The event is dynamically disabled.
12651
12652 "enabled"
12653 The event is dynamically enabled.
12654
12655 Since: 2.2
12656
12657 TraceEventInfo (Object)
12658
12659 Information of a tracing event.
12660
12661 Members:
12662
12663 "name: string"
12664 Event name.
12665
12666 "state: TraceEventState"
12667 Tracing state.
12668
12669 "vcpu: boolean"
12670 Whether this is a per-vCPU event (since 2.7).
12671
12672 An event is per-vCPU if it has the "vcpu" property in the "trace-
12673 events" files.
12674
12675 Since: 2.2
12676
12677 trace-event-get-state (Command) Query the state of events.
12678
12679 Arguments:
12680
12681 "name: string"
12682 Event name pattern (case-sensitive glob).
12683
12684 "vcpu: int" (optional)
12685 The vCPU to query (any by default; since 2.7).
12686
12687 Returns: a list of "TraceEventInfo" for the matching events
12688
12689 An event is returned if:
12690
12691 - its name matches the "name" pattern, and
12692
12693 - if "vcpu" is given, the event has the "vcpu" property.
12694
12695 Therefore, if "vcpu" is given, the operation will only match per-vCPU
12696 events, returning their state on the specified vCPU. Special case: if
12697 "name" is an exact match, "vcpu" is given and the event does not have
12698 the "vcpu" property, an error is returned.
12699
12700 Since: 2.2
12701
12702 Example:
12703
12704 -> { "execute": "trace-event-get-state",
12705 "arguments": { "name": "qemu_memalign" } }
12706 <- { "return": [ { "name": "qemu_memalign", "state": "disabled" } ] }
12707
12708 trace-event-set-state (Command) Set the dynamic tracing state of
12709 events.
12710
12711 Arguments:
12712
12713 "name: string"
12714 Event name pattern (case-sensitive glob).
12715
12716 "enable: boolean"
12717 Whether to enable tracing.
12718
12719 "ignore-unavailable: boolean" (optional)
12720 Do not match unavailable events with "name".
12721
12722 "vcpu: int" (optional)
12723 The vCPU to act upon (all by default; since 2.7).
12724
12725 An event's state is modified if:
12726
12727 - its name matches the "name" pattern, and
12728
12729 - if "vcpu" is given, the event has the "vcpu" property.
12730
12731 Therefore, if "vcpu" is given, the operation will only match per-vCPU
12732 events, setting their state on the specified vCPU. Special case: if
12733 "name" is an exact match, "vcpu" is given and the event does not have
12734 the "vcpu" property, an error is returned.
12735
12736 Since: 2.2
12737
12738 Example:
12739
12740 -> { "execute": "trace-event-set-state",
12741 "arguments": { "name": "qemu_memalign", "enable": "true" } }
12742 <- { "return": {} }
12743
12744 QMP introspection
12745 query-qmp-schema (Command) Command query-qmp-schema exposes the QMP
12746 wire ABI as an array of SchemaInfo. This lets QMP clients figure out
12747 what commands and events are available in this QEMU, and their
12748 parameters and results.
12749
12750 However, the SchemaInfo can't reflect all the rules and restrictions
12751 that apply to QMP. It's interface introspection (figuring out what's
12752 there), not interface specification. The specification is in the QAPI
12753 schema.
12754
12755 Furthermore, while we strive to keep the QMP wire format backwards-
12756 compatible across qemu versions, the introspection output is not
12757 guaranteed to have the same stability. For example, one version of
12758 qemu may list an object member as an optional non-variant, while
12759 another lists the same member only through the object's variants; or
12760 the type of a member may change from a generic string into a specific
12761 enum or from one specific type into an alternate that includes the
12762 original type alongside something else.
12763
12764 Returns: array of "SchemaInfo", where each element describes an entity
12765 in the ABI: command, event, type, ...
12766
12767 The order of the various SchemaInfo is unspecified; however, all names
12768 are guaranteed to be unique (no name will be duplicated with different
12769 meta-types).
12770
12771 Note: the QAPI schema is also used to help define internal interfaces,
12772 by defining QAPI types. These are not part of the QMP wire ABI, and
12773 therefore not returned by this command.
12774
12775 Since: 2.5
12776
12777 SchemaMetaType (Enum)
12778
12779 This is a "SchemaInfo"'s meta type, i.e. the kind of entity it
12780 describes.
12781
12782 Values:
12783
12784 "builtin"
12785 a predefined type such as 'int' or 'bool'.
12786
12787 "enum"
12788 an enumeration type
12789
12790 "array"
12791 an array type
12792
12793 "object"
12794 an object type (struct or union)
12795
12796 "alternate"
12797 an alternate type
12798
12799 "command"
12800 a QMP command
12801
12802 "event"
12803 a QMP event
12804
12805 Since: 2.5
12806
12807 SchemaInfo (Object)
12808
12809 Members:
12810
12811 "name: string"
12812 the entity's name, inherited from "base". The SchemaInfo is always
12813 referenced by this name. Commands and events have the name defined
12814 in the QAPI schema. Unlike command and event names, type names are
12815 not part of the wire ABI. Consequently, type names are meaningless
12816 strings here, although they are still guaranteed unique regardless
12817 of "meta-type".
12818
12819 "meta-type: SchemaMetaType"
12820 the entity's meta type, inherited from "base".
12821
12822 The members of "SchemaInfoBuiltin" when "meta-type" is "builtin"
12823 The members of "SchemaInfoEnum" when "meta-type" is "enum"
12824 The members of "SchemaInfoArray" when "meta-type" is "array"
12825 The members of "SchemaInfoObject" when "meta-type" is "object"
12826 The members of "SchemaInfoAlternate" when "meta-type" is "alternate"
12827 The members of "SchemaInfoCommand" when "meta-type" is "command"
12828 The members of "SchemaInfoEvent" when "meta-type" is "event"
12829
12830 Additional members depend on the value of "meta-type".
12831
12832 Since: 2.5
12833
12834 SchemaInfoBuiltin (Object)
12835
12836 Additional SchemaInfo members for meta-type 'builtin'.
12837
12838 Members:
12839
12840 "json-type: JSONType"
12841 the JSON type used for this type on the wire.
12842
12843 Since: 2.5
12844
12845 JSONType (Enum)
12846
12847 The four primitive and two structured types according to RFC 8259
12848 section 1, plus 'int' (split off 'number'), plus the obvious top type
12849 'value'.
12850
12851 Values:
12852
12853 "string"
12854 Not documented
12855
12856 "number"
12857 Not documented
12858
12859 "int"
12860 Not documented
12861
12862 "boolean"
12863 Not documented
12864
12865 "null"
12866 Not documented
12867
12868 "object"
12869 Not documented
12870
12871 "array"
12872 Not documented
12873
12874 "value"
12875 Not documented
12876
12877 Since: 2.5
12878
12879 SchemaInfoEnum (Object)
12880
12881 Additional SchemaInfo members for meta-type 'enum'.
12882
12883 Members:
12884
12885 "values: array of string"
12886 the enumeration type's values, in no particular order.
12887
12888 Values of this type are JSON string on the wire.
12889
12890 Since: 2.5
12891
12892 SchemaInfoArray (Object)
12893
12894 Additional SchemaInfo members for meta-type 'array'.
12895
12896 Members:
12897
12898 "element-type: string"
12899 the array type's element type.
12900
12901 Values of this type are JSON array on the wire.
12902
12903 Since: 2.5
12904
12905 SchemaInfoObject (Object)
12906
12907 Additional SchemaInfo members for meta-type 'object'.
12908
12909 Members:
12910
12911 "members: array of SchemaInfoObjectMember"
12912 the object type's (non-variant) members, in no particular order.
12913
12914 "tag: string" (optional)
12915 the name of the member serving as type tag. An element of
12916 "members" with this name must exist.
12917
12918 "variants: array of SchemaInfoObjectVariant" (optional)
12919 variant members, i.e. additional members that depend on the type
12920 tag's value. Present exactly when "tag" is present. The variants
12921 are in no particular order, and may even differ from the order of
12922 the values of the enum type of the "tag".
12923
12924 "features: array of string" (optional)
12925 names of features associated with the type, in no particular order.
12926 (since: 4.1)
12927
12928 Values of this type are JSON object on the wire.
12929
12930 Since: 2.5
12931
12932 SchemaInfoObjectMember (Object)
12933
12934 An object member.
12935
12936 Members:
12937
12938 "name: string"
12939 the member's name, as defined in the QAPI schema.
12940
12941 "type: string"
12942 the name of the member's type.
12943
12944 "default: value" (optional)
12945 default when used as command parameter. If absent, the parameter
12946 is mandatory. If present, the value must be null. The parameter
12947 is optional, and behavior when it's missing is not specified here.
12948 Future extension: if present and non-null, the parameter is
12949 optional, and defaults to this value.
12950
12951 Since: 2.5
12952
12953 SchemaInfoObjectVariant (Object)
12954
12955 The variant members for a value of the type tag.
12956
12957 Members:
12958
12959 "case: string"
12960 a value of the type tag.
12961
12962 "type: string"
12963 the name of the object type that provides the variant members when
12964 the type tag has value "case".
12965
12966 Since: 2.5
12967
12968 SchemaInfoAlternate (Object)
12969
12970 Additional SchemaInfo members for meta-type 'alternate'.
12971
12972 Members:
12973
12974 "members: array of SchemaInfoAlternateMember"
12975 the alternate type's members, in no particular order. The members'
12976 wire encoding is distinct, see docs/devel/qapi-code-gen.txt section
12977 Alternate types.
12978
12979 On the wire, this can be any of the members.
12980
12981 Since: 2.5
12982
12983 SchemaInfoAlternateMember (Object)
12984
12985 An alternate member.
12986
12987 Members:
12988
12989 "type: string"
12990 the name of the member's type.
12991
12992 Since: 2.5
12993
12994 SchemaInfoCommand (Object)
12995
12996 Additional SchemaInfo members for meta-type 'command'.
12997
12998 Members:
12999
13000 "arg-type: string"
13001 the name of the object type that provides the command's parameters.
13002
13003 "ret-type: string"
13004 the name of the command's result type.
13005
13006 "allow-oob: boolean" (optional)
13007 whether the command allows out-of-band execution, defaults to false
13008 (Since: 2.12)
13009
13010 "features: array of string" (optional)
13011 names of features associated with the command, in no particular
13012 order. (since 4.2)
13013
13014 TODO: "success-response" (currently irrelevant, because it's QGA, not
13015 QMP)
13016
13017 Since: 2.5
13018
13019 SchemaInfoEvent (Object)
13020
13021 Additional SchemaInfo members for meta-type 'event'.
13022
13023 Members:
13024
13025 "arg-type: string"
13026 the name of the object type that provides the event's parameters.
13027
13028 Since: 2.5
13029
13030 QEMU Object Model (QOM)
13031 ObjectPropertyInfo (Object)
13032
13033 Members:
13034
13035 "name: string"
13036 the name of the property
13037
13038 "type: string"
13039 the type of the property. This will typically come in one of four
13040 forms:
13041
13042 1) A primitive type such as 'u8', 'u16', 'bool', 'str', or
13043 'double'. These types are mapped to the appropriate JSON type.
13044
13045 2) A child type in the form 'child<subtype>' where subtype is a
13046 qdev device type name. Child properties create the composition
13047 tree.
13048
13049 3) A link type in the form 'link<subtype>' where subtype is a qdev
13050 device type name. Link properties form the device model graph.
13051
13052 "description: string" (optional)
13053 if specified, the description of the property.
13054
13055 Since: 1.2
13056
13057 qom-list (Command) This command will list any properties of a object
13058 given a path in the object model.
13059
13060 Arguments:
13061
13062 "path: string"
13063 the path within the object model. See "qom-get" for a description
13064 of this parameter.
13065
13066 Returns: a list of "ObjectPropertyInfo" that describe the properties of
13067 the object.
13068
13069 Since: 1.2
13070
13071 Example:
13072
13073 -> { "execute": "qom-list",
13074 "arguments": { "path": "/chardevs" } }
13075 <- { "return": [ { "name": "type", "type": "string" },
13076 { "name": "parallel0", "type": "child<chardev-vc>" },
13077 { "name": "serial0", "type": "child<chardev-vc>" },
13078 { "name": "mon0", "type": "child<chardev-stdio>" } ] }
13079
13080 qom-get (Command) This command will get a property from a object model
13081 path and return the value.
13082
13083 Arguments:
13084
13085 "path: string"
13086 The path within the object model. There are two forms of supported
13087 paths--absolute and partial paths.
13088
13089 Absolute paths are derived from the root object and can follow
13090 child<> or link<> properties. Since they can follow link<>
13091 properties, they can be arbitrarily long. Absolute paths look like
13092 absolute filenames and are prefixed with a leading slash.
13093
13094 Partial paths look like relative filenames. They do not begin with
13095 a prefix. The matching rules for partial paths are subtle but
13096 designed to make specifying objects easy. At each level of the
13097 composition tree, the partial path is matched as an absolute path.
13098 The first match is not returned. At least two matches are searched
13099 for. A successful result is only returned if only one match is
13100 found. If more than one match is found, a flag is return to
13101 indicate that the match was ambiguous.
13102
13103 "property: string"
13104 The property name to read
13105
13106 Returns: The property value. The type depends on the property type.
13107 child<> and link<> properties are returned as #str pathnames. All
13108 integer property types (u8, u16, etc) are returned as #int.
13109
13110 Since: 1.2
13111
13112 Example:
13113
13114 1. Use absolute path
13115
13116 -> { "execute": "qom-get",
13117 "arguments": { "path": "/machine/unattached/device[0]",
13118 "property": "hotplugged" } }
13119 <- { "return": false }
13120
13121 2. Use partial path
13122
13123 -> { "execute": "qom-get",
13124 "arguments": { "path": "unattached/sysbus",
13125 "property": "type" } }
13126 <- { "return": "System" }
13127
13128 qom-set (Command) This command will set a property from a object model
13129 path.
13130
13131 Arguments:
13132
13133 "path: string"
13134 see "qom-get" for a description of this parameter
13135
13136 "property: string"
13137 the property name to set
13138
13139 "value: value"
13140 a value who's type is appropriate for the property type. See
13141 "qom-get" for a description of type mapping.
13142
13143 Since: 1.2
13144
13145 Example:
13146
13147 -> { "execute": "qom-set",
13148 "arguments": { "path": "/machine",
13149 "property": "graphics",
13150 "value": false } }
13151 <- { "return": {} }
13152
13153 ObjectTypeInfo (Object)
13154
13155 This structure describes a search result from "qom-list-types"
13156
13157 Members:
13158
13159 "name: string"
13160 the type name found in the search
13161
13162 "abstract: boolean" (optional)
13163 the type is abstract and can't be directly instantiated. Omitted
13164 if false. (since 2.10)
13165
13166 "parent: string" (optional)
13167 Name of parent type, if any (since 2.10)
13168
13169 Since: 1.1
13170
13171 qom-list-types (Command) This command will return a list of types
13172 given search parameters
13173
13174 Arguments:
13175
13176 "implements: string" (optional)
13177 if specified, only return types that implement this type name
13178
13179 "abstract: boolean" (optional)
13180 if true, include abstract types in the results
13181
13182 Returns: a list of "ObjectTypeInfo" or an empty list if no results are
13183 found
13184
13185 Since: 1.1
13186
13187 qom-list-properties (Command) List properties associated with a QOM
13188 object.
13189
13190 Arguments:
13191
13192 "typename: string"
13193 the type name of an object
13194
13195 Note: objects can create properties at runtime, for example to describe
13196 links between different devices and/or objects. These properties are
13197 not included in the output of this command.
13198
13199 Returns: a list of ObjectPropertyInfo describing object properties
13200
13201 Since: 2.12
13202
13203 object-add (Command) Create a QOM object.
13204
13205 Arguments:
13206
13207 "qom-type: string"
13208 the class name for the object to be created
13209
13210 "id: string"
13211 the name of the new object
13212
13213 "props: value" (optional)
13214 a dictionary of properties to be passed to the backend
13215
13216 Returns: Nothing on success Error if "qom-type" is not a valid class
13217 name
13218
13219 Since: 2.0
13220
13221 Example:
13222
13223 -> { "execute": "object-add",
13224 "arguments": { "qom-type": "rng-random", "id": "rng1",
13225 "props": { "filename": "/dev/hwrng" } } }
13226 <- { "return": {} }
13227
13228 object-del (Command) Remove a QOM object.
13229
13230 Arguments:
13231
13232 "id: string"
13233 the name of the QOM object to remove
13234
13235 Returns: Nothing on success Error if "id" is not a valid id for a QOM
13236 object
13237
13238 Since: 2.0
13239
13240 Example:
13241
13242 -> { "execute": "object-del", "arguments": { "id": "rng1" } }
13243 <- { "return": {} }
13244
13245 Device infrastructure (qdev)
13246 device-list-properties (Command) List properties associated with a
13247 device.
13248
13249 Arguments:
13250
13251 "typename: string"
13252 the type name of a device
13253
13254 Returns: a list of ObjectPropertyInfo describing a devices properties
13255
13256 Note: objects can create properties at runtime, for example to describe
13257 links between different devices and/or objects. These properties are
13258 not included in the output of this command.
13259
13260 Since: 1.2
13261
13262 device_add (Command)
13263
13264 Arguments:
13265
13266 "driver: string"
13267 the name of the new device's driver
13268
13269 "bus: string" (optional)
13270 the device's parent bus (device tree path)
13271
13272 "id: string" (optional)
13273 the device's ID, must be unique
13274
13275 Additional arguments depend on the type.
13276
13277 Add a device.
13278
13279 Notes:
13280
13281 1. For detailed information about this command, please refer to the
13282 'docs/qdev-device-use.txt' file.
13283
13284 2. It's possible to list device properties by running QEMU with the
13285 "-device DEVICE,help" command-line argument, where DEVICE is the
13286 device's name
13287
13288 Example:
13289
13290 -> { "execute": "device_add",
13291 "arguments": { "driver": "e1000", "id": "net1",
13292 "bus": "pci.0",
13293 "mac": "52:54:00:12:34:56" } }
13294 <- { "return": {} }
13295
13296 TODO: This command effectively bypasses QAPI completely due to its
13297 "additional arguments" business. It shouldn't have been added to the
13298 schema in this form. It should be qapified properly, or replaced by a
13299 properly qapified command.
13300
13301 Since: 0.13
13302
13303 device_del (Command) Remove a device from a guest
13304
13305 Arguments:
13306
13307 "id: string"
13308 the device's ID or QOM path
13309
13310 Returns: Nothing on success If "id" is not a valid device,
13311 DeviceNotFound
13312
13313 Notes: When this command completes, the device may not be removed from
13314 the guest. Hot removal is an operation that requires guest
13315 cooperation. This command merely requests that the guest begin the hot
13316 removal process. Completion of the device removal process is signaled
13317 with a DEVICE_DELETED event. Guest reset will automatically complete
13318 removal for all devices.
13319
13320 Since: 0.14.0
13321
13322 Example:
13323
13324 -> { "execute": "device_del",
13325 "arguments": { "id": "net1" } }
13326 <- { "return": {} }
13327
13328 -> { "execute": "device_del",
13329 "arguments": { "id": "/machine/peripheral-anon/device[0]" } }
13330 <- { "return": {} }
13331
13332 DEVICE_DELETED (Event) Emitted whenever the device removal completion
13333 is acknowledged by the guest. At this point, it's safe to reuse the
13334 specified device ID. Device removal can be initiated by the guest or by
13335 HMP/QMP commands.
13336
13337 Arguments:
13338
13339 "device: string" (optional)
13340 device name
13341
13342 "path: string"
13343 device path
13344
13345 Since: 1.5
13346
13347 Example:
13348
13349 <- { "event": "DEVICE_DELETED",
13350 "data": { "device": "virtio-net-pci-0",
13351 "path": "/machine/peripheral/virtio-net-pci-0" },
13352 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
13353
13354 Machines
13355 SysEmuTarget (Enum)
13356
13357 The comprehensive enumeration of QEMU system emulation ("softmmu")
13358 targets. Run "./configure --help" in the project root directory, and
13359 look for the *-softmmu targets near the "--target-list" option. The
13360 individual target constants are not documented here, for the time
13361 being.
13362
13363 Values:
13364
13365 "aarch64"
13366 Not documented
13367
13368 "alpha"
13369 Not documented
13370
13371 "arm"
13372 Not documented
13373
13374 "cris"
13375 Not documented
13376
13377 "hppa"
13378 Not documented
13379
13380 "i386"
13381 Not documented
13382
13383 "lm32"
13384 Not documented
13385
13386 "m68k"
13387 Not documented
13388
13389 "microblaze"
13390 Not documented
13391
13392 "microblazeel"
13393 Not documented
13394
13395 "mips"
13396 Not documented
13397
13398 "mips64"
13399 Not documented
13400
13401 "mips64el"
13402 Not documented
13403
13404 "mipsel"
13405 Not documented
13406
13407 "moxie"
13408 Not documented
13409
13410 "nios2"
13411 Not documented
13412
13413 "or1k"
13414 Not documented
13415
13416 "ppc"
13417 Not documented
13418
13419 "ppc64"
13420 Not documented
13421
13422 "riscv32"
13423 Not documented
13424
13425 "riscv64"
13426 Not documented
13427
13428 "s390x"
13429 Not documented
13430
13431 "sh4"
13432 Not documented
13433
13434 "sh4eb"
13435 Not documented
13436
13437 "sparc"
13438 Not documented
13439
13440 "sparc64"
13441 Not documented
13442
13443 "tricore"
13444 Not documented
13445
13446 "unicore32"
13447 Not documented
13448
13449 "x86_64"
13450 Not documented
13451
13452 "xtensa"
13453 Not documented
13454
13455 "xtensaeb"
13456 Not documented
13457
13458 Notes: The resulting QMP strings can be appended to the "qemu-system-"
13459 prefix to produce the corresponding QEMU executable name. This is true
13460 even for "qemu-system-x86_64".
13461
13462 ppcemb: dropped in 3.1
13463
13464 Since: 3.0
13465
13466 CpuInfoArch (Enum)
13467
13468 An enumeration of cpu types that enable additional information during
13469 "query-cpus" and "query-cpus-fast".
13470
13471 Values:
13472
13473 "s390"
13474 since 2.12
13475
13476 "riscv"
13477 since 2.12
13478
13479 "x86"
13480 Not documented
13481
13482 "sparc"
13483 Not documented
13484
13485 "ppc"
13486 Not documented
13487
13488 "mips"
13489 Not documented
13490
13491 "tricore"
13492 Not documented
13493
13494 "other"
13495 Not documented
13496
13497 Since: 2.6
13498
13499 CpuInfo (Object)
13500
13501 Information about a virtual CPU
13502
13503 Members:
13504
13505 "CPU: int"
13506 the index of the virtual CPU
13507
13508 "current: boolean"
13509 this only exists for backwards compatibility and should be ignored
13510
13511 "halted: boolean"
13512 true if the virtual CPU is in the halt state. Halt usually refers
13513 to a processor specific low power mode.
13514
13515 "qom_path: string"
13516 path to the CPU object in the QOM tree (since 2.4)
13517
13518 "thread_id: int"
13519 ID of the underlying host thread
13520
13521 "props: CpuInstanceProperties" (optional)
13522 properties describing to which node/socket/core/thread virtual CPU
13523 belongs to, provided if supported by board (since 2.10)
13524
13525 "arch: CpuInfoArch"
13526 architecture of the cpu, which determines which additional fields
13527 will be listed (since 2.6)
13528
13529 The members of "CpuInfoX86" when "arch" is "x86"
13530 The members of "CpuInfoSPARC" when "arch" is "sparc"
13531 The members of "CpuInfoPPC" when "arch" is "ppc"
13532 The members of "CpuInfoMIPS" when "arch" is "mips"
13533 The members of "CpuInfoTricore" when "arch" is "tricore"
13534 The members of "CpuInfoS390" when "arch" is "s390"
13535 The members of "CpuInfoRISCV" when "arch" is "riscv"
13536
13537 Since: 0.14.0
13538
13539 Notes: "halted" is a transient state that changes frequently. By the
13540 time the data is sent to the client, the guest may no longer be halted.
13541
13542 CpuInfoX86 (Object)
13543
13544 Additional information about a virtual i386 or x86_64 CPU
13545
13546 Members:
13547
13548 "pc: int"
13549 the 64-bit instruction pointer
13550
13551 Since: 2.6
13552
13553 CpuInfoSPARC (Object)
13554
13555 Additional information about a virtual SPARC CPU
13556
13557 Members:
13558
13559 "pc: int"
13560 the PC component of the instruction pointer
13561
13562 "npc: int"
13563 the NPC component of the instruction pointer
13564
13565 Since: 2.6
13566
13567 CpuInfoPPC (Object)
13568
13569 Additional information about a virtual PPC CPU
13570
13571 Members:
13572
13573 "nip: int"
13574 the instruction pointer
13575
13576 Since: 2.6
13577
13578 CpuInfoMIPS (Object)
13579
13580 Additional information about a virtual MIPS CPU
13581
13582 Members:
13583
13584 "PC: int"
13585 the instruction pointer
13586
13587 Since: 2.6
13588
13589 CpuInfoTricore (Object)
13590
13591 Additional information about a virtual Tricore CPU
13592
13593 Members:
13594
13595 "PC: int"
13596 the instruction pointer
13597
13598 Since: 2.6
13599
13600 CpuInfoRISCV (Object)
13601
13602 Additional information about a virtual RISCV CPU
13603
13604 Members:
13605
13606 "pc: int"
13607 the instruction pointer
13608
13609 Since 2.12
13610
13611 CpuS390State (Enum)
13612
13613 An enumeration of cpu states that can be assumed by a virtual S390 CPU
13614
13615 Values:
13616
13617 "uninitialized"
13618 Not documented
13619
13620 "stopped"
13621 Not documented
13622
13623 "check-stop"
13624 Not documented
13625
13626 "operating"
13627 Not documented
13628
13629 "load"
13630 Not documented
13631
13632 Since: 2.12
13633
13634 CpuInfoS390 (Object)
13635
13636 Additional information about a virtual S390 CPU
13637
13638 Members:
13639
13640 "cpu-state: CpuS390State"
13641 the virtual CPU's state
13642
13643 Since: 2.12
13644
13645 query-cpus (Command) Returns a list of information about each virtual
13646 CPU.
13647
13648 This command causes vCPU threads to exit to userspace, which causes a
13649 small interruption to guest CPU execution. This will have a negative
13650 impact on realtime guests and other latency sensitive guest workloads.
13651 It is recommended to use "query-cpus-fast" instead of this command to
13652 avoid the vCPU interruption.
13653
13654 Returns: a list of "CpuInfo" for each virtual CPU
13655
13656 Since: 0.14.0
13657
13658 Example:
13659
13660 -> { "execute": "query-cpus" }
13661 <- { "return": [
13662 {
13663 "CPU":0,
13664 "current":true,
13665 "halted":false,
13666 "qom_path":"/machine/unattached/device[0]",
13667 "arch":"x86",
13668 "pc":3227107138,
13669 "thread_id":3134
13670 },
13671 {
13672 "CPU":1,
13673 "current":false,
13674 "halted":true,
13675 "qom_path":"/machine/unattached/device[2]",
13676 "arch":"x86",
13677 "pc":7108165,
13678 "thread_id":3135
13679 }
13680 ]
13681 }
13682
13683 Notes: This interface is deprecated (since 2.12.0), and it is strongly
13684 recommended that you avoid using it. Use "query-cpus-fast" to obtain
13685 information about virtual CPUs.
13686
13687 CpuInfoFast (Object)
13688
13689 Information about a virtual CPU
13690
13691 Members:
13692
13693 "cpu-index: int"
13694 index of the virtual CPU
13695
13696 "qom-path: string"
13697 path to the CPU object in the QOM tree
13698
13699 "thread-id: int"
13700 ID of the underlying host thread
13701
13702 "props: CpuInstanceProperties" (optional)
13703 properties describing to which node/socket/core/thread virtual CPU
13704 belongs to, provided if supported by board
13705
13706 "arch: CpuInfoArch"
13707 base architecture of the cpu; deprecated since 3.0.0 in favor of
13708 "target"
13709
13710 "target: SysEmuTarget"
13711 the QEMU system emulation target, which determines which additional
13712 fields will be listed (since 3.0)
13713
13714 The members of "CpuInfoS390" when "target" is "s390x"
13715
13716 Since: 2.12
13717
13718 query-cpus-fast (Command) Returns information about all virtual CPUs.
13719 This command does not incur a performance penalty and should be used in
13720 production instead of query-cpus.
13721
13722 Returns: list of "CpuInfoFast"
13723
13724 Since: 2.12
13725
13726 Example:
13727
13728 -> { "execute": "query-cpus-fast" }
13729 <- { "return": [
13730 {
13731 "thread-id": 25627,
13732 "props": {
13733 "core-id": 0,
13734 "thread-id": 0,
13735 "socket-id": 0
13736 },
13737 "qom-path": "/machine/unattached/device[0]",
13738 "arch":"x86",
13739 "target":"x86_64",
13740 "cpu-index": 0
13741 },
13742 {
13743 "thread-id": 25628,
13744 "props": {
13745 "core-id": 0,
13746 "thread-id": 0,
13747 "socket-id": 1
13748 },
13749 "qom-path": "/machine/unattached/device[2]",
13750 "arch":"x86",
13751 "target":"x86_64",
13752 "cpu-index": 1
13753 }
13754 ]
13755 }
13756
13757 cpu-add (Command) Adds CPU with specified ID.
13758
13759 Arguments:
13760
13761 "id: int"
13762 ID of CPU to be created, valid values [0..max_cpus)
13763
13764 Returns: Nothing on success
13765
13766 Since: 1.5
13767
13768 Note: This command is deprecated. The `device_add` command should be
13769 used instead. See the `query-hotpluggable-cpus` command for details.
13770
13771 Example:
13772
13773 -> { "execute": "cpu-add", "arguments": { "id": 2 } }
13774 <- { "return": {} }
13775
13776 MachineInfo (Object)
13777
13778 Information describing a machine.
13779
13780 Members:
13781
13782 "name: string"
13783 the name of the machine
13784
13785 "alias: string" (optional)
13786 an alias for the machine name
13787
13788 "is-default: boolean" (optional)
13789 whether the machine is default
13790
13791 "cpu-max: int"
13792 maximum number of CPUs supported by the machine type (since 1.5.0)
13793
13794 "hotpluggable-cpus: boolean"
13795 cpu hotplug via -device is supported (since 2.7.0)
13796
13797 "numa-mem-supported: boolean"
13798 true if '-numa node,mem' option is supported by the machine type
13799 and false otherwise (since 4.1)
13800
13801 "deprecated: boolean"
13802 if true, the machine type is deprecated and may be removed in
13803 future versions of QEMU according to the QEMU deprecation policy
13804 (since 4.1.0)
13805
13806 "default-cpu-type: string" (optional)
13807 default CPU model typename if none is requested via the -cpu
13808 argument. (since 4.2)
13809
13810 Since: 1.2.0
13811
13812 query-machines (Command) Return a list of supported machines
13813
13814 Returns: a list of MachineInfo
13815
13816 Since: 1.2.0
13817
13818 CurrentMachineParams (Object)
13819
13820 Information describing the running machine parameters.
13821
13822 Members:
13823
13824 "wakeup-suspend-support: boolean"
13825 true if the machine supports wake up from suspend
13826
13827 Since: 4.0
13828
13829 query-current-machine (Command) Return information on the current
13830 virtual machine.
13831
13832 Returns: CurrentMachineParams
13833
13834 Since: 4.0
13835
13836 TargetInfo (Object)
13837
13838 Information describing the QEMU target.
13839
13840 Members:
13841
13842 "arch: SysEmuTarget"
13843 the target architecture
13844
13845 Since: 1.2.0
13846
13847 query-target (Command) Return information about the target for this
13848 QEMU
13849
13850 Returns: TargetInfo
13851
13852 Since: 1.2.0
13853
13854 NumaOptionsType (Enum)
13855
13856 Values:
13857
13858 "node"
13859 NUMA nodes configuration
13860
13861 "dist"
13862 NUMA distance configuration (since 2.10)
13863
13864 "cpu"
13865 property based CPU(s) to node mapping (Since: 2.10)
13866
13867 Since: 2.1
13868
13869 NumaOptions (Object)
13870
13871 A discriminated record of NUMA options. (for OptsVisitor)
13872
13873 Members:
13874
13875 "type: NumaOptionsType"
13876 Not documented
13877
13878 The members of "NumaNodeOptions" when "type" is "node"
13879 The members of "NumaDistOptions" when "type" is "dist"
13880 The members of "NumaCpuOptions" when "type" is "cpu"
13881
13882 Since: 2.1
13883
13884 NumaNodeOptions (Object)
13885
13886 Create a guest NUMA node. (for OptsVisitor)
13887
13888 Members:
13889
13890 "nodeid: int" (optional)
13891 NUMA node ID (increase by 1 from 0 if omitted)
13892
13893 "cpus: array of int" (optional)
13894 VCPUs belonging to this node (assign VCPUS round-robin if omitted)
13895
13896 "mem: int" (optional)
13897 memory size of this node; mutually exclusive with "memdev".
13898 Equally divide total memory among nodes if both "mem" and "memdev"
13899 are omitted.
13900
13901 "memdev: string" (optional)
13902 memory backend object. If specified for one node, it must be
13903 specified for all nodes.
13904
13905 Since: 2.1
13906
13907 NumaDistOptions (Object)
13908
13909 Set the distance between 2 NUMA nodes.
13910
13911 Members:
13912
13913 "src: int"
13914 source NUMA node.
13915
13916 "dst: int"
13917 destination NUMA node.
13918
13919 "val: int"
13920 NUMA distance from source node to destination node. When a node is
13921 unreachable from another node, set the distance between them to
13922 255.
13923
13924 Since: 2.10
13925
13926 X86CPURegister32 (Enum)
13927
13928 A X86 32-bit register
13929
13930 Values:
13931
13932 "EAX"
13933 Not documented
13934
13935 "EBX"
13936 Not documented
13937
13938 "ECX"
13939 Not documented
13940
13941 "EDX"
13942 Not documented
13943
13944 "ESP"
13945 Not documented
13946
13947 "EBP"
13948 Not documented
13949
13950 "ESI"
13951 Not documented
13952
13953 "EDI"
13954 Not documented
13955
13956 Since: 1.5
13957
13958 X86CPUFeatureWordInfo (Object)
13959
13960 Information about a X86 CPU feature word
13961
13962 Members:
13963
13964 "cpuid-input-eax: int"
13965 Input EAX value for CPUID instruction for that feature word
13966
13967 "cpuid-input-ecx: int" (optional)
13968 Input ECX value for CPUID instruction for that feature word
13969
13970 "cpuid-register: X86CPURegister32"
13971 Output register containing the feature bits
13972
13973 "features: int"
13974 value of output register, containing the feature bits
13975
13976 Since: 1.5
13977
13978 DummyForceArrays (Object)
13979
13980 Not used by QMP; hack to let us use X86CPUFeatureWordInfoList
13981 internally
13982
13983 Members:
13984
13985 "unused: array of X86CPUFeatureWordInfo"
13986 Not documented
13987
13988 Since: 2.5
13989
13990 NumaCpuOptions (Object)
13991
13992 Option "-numa cpu" overrides default cpu to node mapping. It accepts
13993 the same set of cpu properties as returned by
13994 query-hotpluggable-cpus[].props, where node-id could be used to
13995 override default node mapping.
13996
13997 Members:
13998
13999 The members of "CpuInstanceProperties"
14000
14001 Since: 2.10
14002
14003 HostMemPolicy (Enum)
14004
14005 Host memory policy types
14006
14007 Values:
14008
14009 "default"
14010 restore default policy, remove any nondefault policy
14011
14012 "preferred"
14013 set the preferred host nodes for allocation
14014
14015 "bind"
14016 a strict policy that restricts memory allocation to the host nodes
14017 specified
14018
14019 "interleave"
14020 memory allocations are interleaved across the set of host nodes
14021 specified
14022
14023 Since: 2.1
14024
14025 Memdev (Object)
14026
14027 Information about memory backend
14028
14029 Members:
14030
14031 "id: string" (optional)
14032 backend's ID if backend has 'id' property (since 2.9)
14033
14034 "size: int"
14035 memory backend size
14036
14037 "merge: boolean"
14038 enables or disables memory merge support
14039
14040 "dump: boolean"
14041 includes memory backend's memory in a core dump or not
14042
14043 "prealloc: boolean"
14044 enables or disables memory preallocation
14045
14046 "host-nodes: array of int"
14047 host nodes for its memory policy
14048
14049 "policy: HostMemPolicy"
14050 memory policy of memory backend
14051
14052 Since: 2.1
14053
14054 query-memdev (Command) Returns information for all memory backends.
14055
14056 Returns: a list of "Memdev".
14057
14058 Since: 2.1
14059
14060 Example:
14061
14062 -> { "execute": "query-memdev" }
14063 <- { "return": [
14064 {
14065 "id": "mem1",
14066 "size": 536870912,
14067 "merge": false,
14068 "dump": true,
14069 "prealloc": false,
14070 "host-nodes": [0, 1],
14071 "policy": "bind"
14072 },
14073 {
14074 "size": 536870912,
14075 "merge": false,
14076 "dump": true,
14077 "prealloc": true,
14078 "host-nodes": [2, 3],
14079 "policy": "preferred"
14080 }
14081 ]
14082 }
14083
14084 CpuInstanceProperties (Object)
14085
14086 List of properties to be used for hotplugging a CPU instance, it should
14087 be passed by management with device_add command when a CPU is being
14088 hotplugged.
14089
14090 Members:
14091
14092 "node-id: int" (optional)
14093 NUMA node ID the CPU belongs to
14094
14095 "socket-id: int" (optional)
14096 socket number within node/board the CPU belongs to
14097
14098 "die-id: int" (optional)
14099 die number within node/board the CPU belongs to (Since 4.1)
14100
14101 "core-id: int" (optional)
14102 core number within die the CPU belongs to# "thread-id": thread
14103 number within core the CPU belongs to
14104
14105 "thread-id: int" (optional)
14106 Not documented
14107
14108 Note: currently there are 5 properties that could be present but
14109 management should be prepared to pass through other properties with
14110 device_add command to allow for future interface extension. This also
14111 requires the filed names to be kept in sync with the properties passed
14112 to -device/device_add.
14113
14114 Since: 2.7
14115
14116 HotpluggableCPU (Object)
14117
14118 Members:
14119
14120 "type: string"
14121 CPU object type for usage with device_add command
14122
14123 "props: CpuInstanceProperties"
14124 list of properties to be used for hotplugging CPU
14125
14126 "vcpus-count: int"
14127 number of logical VCPU threads "HotpluggableCPU" provides
14128
14129 "qom-path: string" (optional)
14130 link to existing CPU object if CPU is present or omitted if CPU is
14131 not present.
14132
14133 Since: 2.7
14134
14135 query-hotpluggable-cpus (Command)
14136
14137 TODO: Better documentation; currently there is none.
14138
14139 Returns: a list of HotpluggableCPU objects.
14140
14141 Since: 2.7
14142
14143 Example:
14144
14145 For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu POWER8:
14146
14147 -> { "execute": "query-hotpluggable-cpus" }
14148 <- {"return": [
14149 { "props": { "core": 8 }, "type": "POWER8-spapr-cpu-core",
14150 "vcpus-count": 1 },
14151 { "props": { "core": 0 }, "type": "POWER8-spapr-cpu-core",
14152 "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"}
14153 ]}'
14154
14155 For pc machine type started with -smp 1,maxcpus=2:
14156
14157 -> { "execute": "query-hotpluggable-cpus" }
14158 <- {"return": [
14159 {
14160 "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
14161 "props": {"core-id": 0, "socket-id": 1, "thread-id": 0}
14162 },
14163 {
14164 "qom-path": "/machine/unattached/device[0]",
14165 "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
14166 "props": {"core-id": 0, "socket-id": 0, "thread-id": 0}
14167 }
14168 ]}
14169
14170 For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu qemu
14171 (Since: 2.11):
14172
14173 -> { "execute": "query-hotpluggable-cpus" }
14174 <- {"return": [
14175 {
14176 "type": "qemu-s390x-cpu", "vcpus-count": 1,
14177 "props": { "core-id": 1 }
14178 },
14179 {
14180 "qom-path": "/machine/unattached/device[0]",
14181 "type": "qemu-s390x-cpu", "vcpus-count": 1,
14182 "props": { "core-id": 0 }
14183 }
14184 ]}
14185
14186 set-numa-node (Command) Runtime equivalent of '-numa' CLI option,
14187 available at preconfigure stage to configure numa mapping before
14188 initializing machine.
14189
14190 Since 3.0
14191
14192 Arguments: the members of "NumaOptions"
14193
14194 CpuModelInfo (Object)
14195
14196 Virtual CPU model.
14197
14198 A CPU model consists of the name of a CPU definition, to which delta
14199 changes are applied (e.g. features added/removed). Most magic values
14200 that an architecture might require should be hidden behind the name.
14201 However, if required, architectures can expose relevant properties.
14202
14203 Members:
14204
14205 "name: string"
14206 the name of the CPU definition the model is based on
14207
14208 "props: value" (optional)
14209 a dictionary of QOM properties to be applied
14210
14211 Since: 2.8.0
14212
14213 CpuModelExpansionType (Enum)
14214
14215 An enumeration of CPU model expansion types.
14216
14217 Values:
14218
14219 "static"
14220 Expand to a static CPU model, a combination of a static base model
14221 name and property delta changes. As the static base model will
14222 never change, the expanded CPU model will be the same, independent
14223 of QEMU version, machine type, machine options, and accelerator
14224 options. Therefore, the resulting model can be used by tooling
14225 without having to specify a compatibility machine - e.g. when
14226 displaying the "host" model. The "static" CPU models are migration-
14227 safe.
14228
14229 "full"
14230 Expand all properties. The produced model is not guaranteed to be
14231 migration-safe, but allows tooling to get an insight and work with
14232 model details.
14233
14234 Note: When a non-migration-safe CPU model is expanded in static mode,
14235 some features enabled by the CPU model may be omitted, because they
14236 can't be implemented by a static CPU model definition (e.g. cache info
14237 passthrough and PMU passthrough in x86). If you need an accurate
14238 representation of the features enabled by a non-migration-safe CPU
14239 model, use "full". If you need a static representation that will keep
14240 ABI compatibility even when changing QEMU version or machine-type, use
14241 "static" (but keep in mind that some features may be omitted).
14242
14243 Since: 2.8.0
14244
14245 CpuModelCompareResult (Enum)
14246
14247 An enumeration of CPU model comparison results. The result is usually
14248 calculated using e.g. CPU features or CPU generations.
14249
14250 Values:
14251
14252 "incompatible"
14253 If model A is incompatible to model B, model A is not guaranteed to
14254 run where model B runs and the other way around.
14255
14256 "identical"
14257 If model A is identical to model B, model A is guaranteed to run
14258 where model B runs and the other way around.
14259
14260 "superset"
14261 If model A is a superset of model B, model B is guaranteed to run
14262 where model A runs. There are no guarantees about the other way.
14263
14264 "subset"
14265 If model A is a subset of model B, model A is guaranteed to run
14266 where model B runs. There are no guarantees about the other way.
14267
14268 Since: 2.8.0
14269
14270 CpuModelBaselineInfo (Object)
14271
14272 The result of a CPU model baseline.
14273
14274 Members:
14275
14276 "model: CpuModelInfo"
14277 the baselined CpuModelInfo.
14278
14279 Since: 2.8.0
14280
14281 If: "defined(TARGET_S390X)"
14282
14283 CpuModelCompareInfo (Object)
14284
14285 The result of a CPU model comparison.
14286
14287 Members:
14288
14289 "result: CpuModelCompareResult"
14290 The result of the compare operation.
14291
14292 "responsible-properties: array of string"
14293 List of properties that led to the comparison result not being
14294 identical.
14295
14296 "responsible-properties" is a list of QOM property names that led to
14297 both CPUs not being detected as identical. For identical models, this
14298 list is empty. If a QOM property is read-only, that means there's no
14299 known way to make the CPU models identical. If the special property
14300 name "type" is included, the models are by definition not identical and
14301 cannot be made identical.
14302
14303 Since: 2.8.0
14304
14305 If: "defined(TARGET_S390X)"
14306
14307 query-cpu-model-comparison (Command) Compares two CPU models,
14308 returning how they compare in a specific configuration. The results
14309 indicates how both models compare regarding runnability. This result
14310 can be used by tooling to make decisions if a certain CPU model will
14311 run in a certain configuration or if a compatible CPU model has to be
14312 created by baselining.
14313
14314 Usually, a CPU model is compared against the maximum possible CPU model
14315 of a certain configuration (e.g. the "host" model for KVM). If that CPU
14316 model is identical or a subset, it will run in that configuration.
14317
14318 The result returned by this command may be affected by:
14319
14320 · QEMU version: CPU models may look different depending on the QEMU
14321 version. (Except for CPU models reported as "static" in query-cpu-
14322 definitions.)
14323
14324 · machine-type: CPU model may look different depending on the
14325 machine-type. (Except for CPU models reported as "static" in
14326 query-cpu-definitions.)
14327
14328 · machine options (including accelerator): in some architectures, CPU
14329 models may look different depending on machine and accelerator
14330 options. (Except for CPU models reported as "static" in query-cpu-
14331 definitions.)
14332
14333 · "-cpu" arguments and global properties: arguments to the -cpu
14334 option and global properties may affect expansion of CPU models.
14335 Using query-cpu-model-expansion while using these is not advised.
14336
14337 Some architectures may not support comparing CPU models. s390x supports
14338 comparing CPU models.
14339
14340 Arguments:
14341
14342 "modela: CpuModelInfo"
14343 Not documented
14344
14345 "modelb: CpuModelInfo"
14346 Not documented
14347
14348 Returns: a CpuModelBaselineInfo. Returns an error if comparing CPU
14349 models is not supported, if a model cannot be used, if a model contains
14350 an unknown cpu definition name, unknown properties or properties with
14351 wrong types.
14352
14353 Note: this command isn't specific to s390x, but is only implemented on
14354 this architecture currently.
14355
14356 Since: 2.8.0
14357
14358 If: "defined(TARGET_S390X)"
14359
14360 query-cpu-model-baseline (Command) Baseline two CPU models, creating a
14361 compatible third model. The created model will always be a static,
14362 migration-safe CPU model (see "static" CPU model expansion for
14363 details).
14364
14365 This interface can be used by tooling to create a compatible CPU model
14366 out two CPU models. The created CPU model will be identical to or a
14367 subset of both CPU models when comparing them. Therefore, the created
14368 CPU model is guaranteed to run where the given CPU models run.
14369
14370 The result returned by this command may be affected by:
14371
14372 · QEMU version: CPU models may look different depending on the QEMU
14373 version. (Except for CPU models reported as "static" in query-cpu-
14374 definitions.)
14375
14376 · machine-type: CPU model may look different depending on the
14377 machine-type. (Except for CPU models reported as "static" in
14378 query-cpu-definitions.)
14379
14380 · machine options (including accelerator): in some architectures, CPU
14381 models may look different depending on machine and accelerator
14382 options. (Except for CPU models reported as "static" in query-cpu-
14383 definitions.)
14384
14385 · "-cpu" arguments and global properties: arguments to the -cpu
14386 option and global properties may affect expansion of CPU models.
14387 Using query-cpu-model-expansion while using these is not advised.
14388
14389 Some architectures may not support baselining CPU models. s390x
14390 supports baselining CPU models.
14391
14392 Arguments:
14393
14394 "modela: CpuModelInfo"
14395 Not documented
14396
14397 "modelb: CpuModelInfo"
14398 Not documented
14399
14400 Returns: a CpuModelBaselineInfo. Returns an error if baselining CPU
14401 models is not supported, if a model cannot be used, if a model contains
14402 an unknown cpu definition name, unknown properties or properties with
14403 wrong types.
14404
14405 Note: this command isn't specific to s390x, but is only implemented on
14406 this architecture currently.
14407
14408 Since: 2.8.0
14409
14410 If: "defined(TARGET_S390X)"
14411
14412 CpuModelExpansionInfo (Object)
14413
14414 The result of a cpu model expansion.
14415
14416 Members:
14417
14418 "model: CpuModelInfo"
14419 the expanded CpuModelInfo.
14420
14421 Since: 2.8.0
14422
14423 If: "defined(TARGET_S390X) || defined(TARGET_I386) ||
14424 defined(TARGET_ARM)"
14425
14426 query-cpu-model-expansion (Command) Expands a given CPU model (or a
14427 combination of CPU model + additional options) to different
14428 granularities, allowing tooling to get an understanding what a specific
14429 CPU model looks like in QEMU under a certain configuration.
14430
14431 This interface can be used to query the "host" CPU model.
14432
14433 The data returned by this command may be affected by:
14434
14435 · QEMU version: CPU models may look different depending on the QEMU
14436 version. (Except for CPU models reported as "static" in query-cpu-
14437 definitions.)
14438
14439 · machine-type: CPU model may look different depending on the
14440 machine-type. (Except for CPU models reported as "static" in
14441 query-cpu-definitions.)
14442
14443 · machine options (including accelerator): in some architectures, CPU
14444 models may look different depending on machine and accelerator
14445 options. (Except for CPU models reported as "static" in query-cpu-
14446 definitions.)
14447
14448 · "-cpu" arguments and global properties: arguments to the -cpu
14449 option and global properties may affect expansion of CPU models.
14450 Using query-cpu-model-expansion while using these is not advised.
14451
14452 Some architectures may not support all expansion types. s390x supports
14453 "full" and "static". Arm only supports "full".
14454
14455 Arguments:
14456
14457 "type: CpuModelExpansionType"
14458 Not documented
14459
14460 "model: CpuModelInfo"
14461 Not documented
14462
14463 Returns: a CpuModelExpansionInfo. Returns an error if expanding CPU
14464 models is not supported, if the model cannot be expanded, if the model
14465 contains an unknown CPU definition name, unknown properties or
14466 properties with a wrong type. Also returns an error if an expansion
14467 type is not supported.
14468
14469 Since: 2.8.0
14470
14471 If: "defined(TARGET_S390X) || defined(TARGET_I386) ||
14472 defined(TARGET_ARM)"
14473
14474 CpuDefinitionInfo (Object)
14475
14476 Virtual CPU definition.
14477
14478 Members:
14479
14480 "name: string"
14481 the name of the CPU definition
14482
14483 "migration-safe: boolean" (optional)
14484 whether a CPU definition can be safely used for migration in
14485 combination with a QEMU compatibility machine when migrating
14486 between different QEMU versions and between hosts with different
14487 sets of (hardware or software) capabilities. If not provided,
14488 information is not available and callers should not assume the CPU
14489 definition to be migration-safe. (since 2.8)
14490
14491 "static: boolean"
14492 whether a CPU definition is static and will not change depending on
14493 QEMU version, machine type, machine options and accelerator
14494 options. A static model is always migration-safe. (since 2.8)
14495
14496 "unavailable-features: array of string" (optional)
14497 List of properties that prevent the CPU model from running in the
14498 current host. (since 2.8)
14499
14500 "typename: string"
14501 Type name that can be used as argument to "device-list-properties",
14502 to introspect properties configurable using -cpu or -global.
14503 (since 2.9)
14504
14505 "alias-of: string" (optional)
14506 Name of CPU model this model is an alias for. The target of the
14507 CPU model alias may change depending on the machine type.
14508 Management software is supposed to translate CPU model aliases in
14509 the VM configuration, because aliases may stop being migration-safe
14510 in the future (since 4.1)
14511
14512 "unavailable-features" is a list of QOM property names that represent
14513 CPU model attributes that prevent the CPU from running. If the QOM
14514 property is read-only, that means there's no known way to make the CPU
14515 model run in the current host. Implementations that choose not to
14516 provide specific information return the property name "type". If the
14517 property is read-write, it means that it MAY be possible to run the CPU
14518 model in the current host if that property is changed. Management
14519 software can use it as hints to suggest or choose an alternative for
14520 the user, or just to generate meaningful error messages explaining why
14521 the CPU model can't be used. If "unavailable-features" is an empty
14522 list, the CPU model is runnable using the current host and machine-
14523 type. If "unavailable-features" is not present, runnability
14524 information for the CPU is not available.
14525
14526 Since: 1.2.0
14527
14528 If: "defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386)
14529 || defined(TARGET_S390X) || defined(TARGET_MIPS)"
14530
14531 query-cpu-definitions (Command) Return a list of supported virtual CPU
14532 definitions
14533
14534 Returns: a list of CpuDefInfo
14535
14536 Since: 1.2.0
14537
14538 If: "defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386)
14539 || defined(TARGET_S390X) || defined(TARGET_MIPS)"
14540
14541 Miscellanea
14542 qmp_capabilities (Command) Enable QMP capabilities.
14543
14544 Arguments:
14545
14546 Arguments:
14547
14548 "enable: array of QMPCapability" (optional)
14549 An optional list of QMPCapability values to enable. The client
14550 must not enable any capability that is not mentioned in the QMP
14551 greeting message. If the field is not provided, it means no QMP
14552 capabilities will be enabled. (since 2.12)
14553
14554 Example:
14555
14556 -> { "execute": "qmp_capabilities",
14557 "arguments": { "enable": [ "oob" ] } }
14558 <- { "return": {} }
14559
14560 Notes: This command is valid exactly when first connecting: it must be
14561 issued before any other command will be accepted, and will fail once
14562 the monitor is accepting other commands. (see qemu
14563 docs/interop/qmp-spec.txt)
14564
14565 The QMP client needs to explicitly enable QMP capabilities, otherwise
14566 all the QMP capabilities will be turned off by default.
14567
14568 Since: 0.13
14569
14570 QMPCapability (Enum)
14571
14572 Enumeration of capabilities to be advertised during initial client
14573 connection, used for agreeing on particular QMP extension behaviors.
14574
14575 Values:
14576
14577 "oob"
14578 QMP ability to support out-of-band requests. (Please refer to
14579 qmp-spec.txt for more information on OOB)
14580
14581 Since: 2.12
14582
14583 VersionTriple (Object)
14584
14585 A three-part version number.
14586
14587 Members:
14588
14589 "major: int"
14590 The major version number.
14591
14592 "minor: int"
14593 The minor version number.
14594
14595 "micro: int"
14596 The micro version number.
14597
14598 Since: 2.4
14599
14600 VersionInfo (Object)
14601
14602 A description of QEMU's version.
14603
14604 Members:
14605
14606 "qemu: VersionTriple"
14607 The version of QEMU. By current convention, a micro version of 50
14608 signifies a development branch. A micro version greater than or
14609 equal to 90 signifies a release candidate for the next minor
14610 version. A micro version of less than 50 signifies a stable
14611 release.
14612
14613 "package: string"
14614 QEMU will always set this field to an empty string. Downstream
14615 versions of QEMU should set this to a non-empty string. The exact
14616 format depends on the downstream however it highly recommended that
14617 a unique name is used.
14618
14619 Since: 0.14.0
14620
14621 query-version (Command) Returns the current version of QEMU.
14622
14623 Returns: A "VersionInfo" object describing the current version of QEMU.
14624
14625 Since: 0.14.0
14626
14627 Example:
14628
14629 -> { "execute": "query-version" }
14630 <- {
14631 "return":{
14632 "qemu":{
14633 "major":0,
14634 "minor":11,
14635 "micro":5
14636 },
14637 "package":""
14638 }
14639 }
14640
14641 CommandInfo (Object)
14642
14643 Information about a QMP command
14644
14645 Members:
14646
14647 "name: string"
14648 The command name
14649
14650 Since: 0.14.0
14651
14652 query-commands (Command) Return a list of supported QMP commands by
14653 this server
14654
14655 Returns: A list of "CommandInfo" for all supported commands
14656
14657 Since: 0.14.0
14658
14659 Example:
14660
14661 -> { "execute": "query-commands" }
14662 <- {
14663 "return":[
14664 {
14665 "name":"query-balloon"
14666 },
14667 {
14668 "name":"system_powerdown"
14669 }
14670 ]
14671 }
14672
14673 Note: This example has been shortened as the real response is too long.
14674
14675 LostTickPolicy (Enum)
14676
14677 Policy for handling lost ticks in timer devices.
14678
14679 Values:
14680
14681 "discard"
14682 throw away the missed tick(s) and continue with future injection
14683 normally. Guest time may be delayed, unless the OS has explicit
14684 handling of lost ticks
14685
14686 "delay"
14687 continue to deliver ticks at the normal rate. Guest time will be
14688 delayed due to the late tick
14689
14690 "slew"
14691 deliver ticks at a higher rate to catch up with the missed tick.
14692 The guest time should not be delayed once catchup is complete.
14693
14694 Since: 2.0
14695
14696 add_client (Command) Allow client connections for VNC, Spice and
14697 socket based character devices to be passed in to QEMU via SCM_RIGHTS.
14698
14699 Arguments:
14700
14701 "protocol: string"
14702 protocol name. Valid names are "vnc", "spice" or the name of a
14703 character device (eg. from -chardev id=XXXX)
14704
14705 "fdname: string"
14706 file descriptor name previously passed via 'getfd' command
14707
14708 "skipauth: boolean" (optional)
14709 whether to skip authentication. Only applies to "vnc" and "spice"
14710 protocols
14711
14712 "tls: boolean" (optional)
14713 whether to perform TLS. Only applies to the "spice" protocol
14714
14715 Returns: nothing on success.
14716
14717 Since: 0.14.0
14718
14719 Example:
14720
14721 -> { "execute": "add_client", "arguments": { "protocol": "vnc",
14722 "fdname": "myclient" } }
14723 <- { "return": {} }
14724
14725 NameInfo (Object)
14726
14727 Guest name information.
14728
14729 Members:
14730
14731 "name: string" (optional)
14732 The name of the guest
14733
14734 Since: 0.14.0
14735
14736 query-name (Command) Return the name information of a guest.
14737
14738 Returns: "NameInfo" of the guest
14739
14740 Since: 0.14.0
14741
14742 Example:
14743
14744 -> { "execute": "query-name" }
14745 <- { "return": { "name": "qemu-name" } }
14746
14747 KvmInfo (Object)
14748
14749 Information about support for KVM acceleration
14750
14751 Members:
14752
14753 "enabled: boolean"
14754 true if KVM acceleration is active
14755
14756 "present: boolean"
14757 true if KVM acceleration is built into this executable
14758
14759 Since: 0.14.0
14760
14761 query-kvm (Command) Returns information about KVM acceleration
14762
14763 Returns: "KvmInfo"
14764
14765 Since: 0.14.0
14766
14767 Example:
14768
14769 -> { "execute": "query-kvm" }
14770 <- { "return": { "enabled": true, "present": true } }
14771
14772 UuidInfo (Object)
14773
14774 Guest UUID information (Universally Unique Identifier).
14775
14776 Members:
14777
14778 "UUID: string"
14779 the UUID of the guest
14780
14781 Since: 0.14.0
14782
14783 Notes: If no UUID was specified for the guest, a null UUID is returned.
14784
14785 query-uuid (Command) Query the guest UUID information.
14786
14787 Returns: The "UuidInfo" for the guest
14788
14789 Since: 0.14.0
14790
14791 Example:
14792
14793 -> { "execute": "query-uuid" }
14794 <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
14795
14796 EventInfo (Object)
14797
14798 Information about a QMP event
14799
14800 Members:
14801
14802 "name: string"
14803 The event name
14804
14805 Since: 1.2.0
14806
14807 query-events (Command) Return information on QMP events.
14808
14809 Returns: A list of "EventInfo".
14810
14811 Since: 1.2.0
14812
14813 Note: This command is deprecated, because its output doesn't reflect
14814 compile-time configuration. Use query-qmp-schema instead.
14815
14816 Example:
14817
14818 -> { "execute": "query-events" }
14819 <- {
14820 "return": [
14821 {
14822 "name":"SHUTDOWN"
14823 },
14824 {
14825 "name":"RESET"
14826 }
14827 ]
14828 }
14829
14830 Note: This example has been shortened as the real response is too long.
14831
14832 IOThreadInfo (Object)
14833
14834 Information about an iothread
14835
14836 Members:
14837
14838 "id: string"
14839 the identifier of the iothread
14840
14841 "thread-id: int"
14842 ID of the underlying host thread
14843
14844 "poll-max-ns: int"
14845 maximum polling time in ns, 0 means polling is disabled (since 2.9)
14846
14847 "poll-grow: int"
14848 how many ns will be added to polling time, 0 means that it's not
14849 configured (since 2.9)
14850
14851 "poll-shrink: int"
14852 how many ns will be removed from polling time, 0 means that it's
14853 not configured (since 2.9)
14854
14855 Since: 2.0
14856
14857 query-iothreads (Command) Returns a list of information about each
14858 iothread.
14859
14860 Note: this list excludes the QEMU main loop thread, which is not
14861 declared using the -object iothread command-line option. It is always
14862 the main thread of the process.
14863
14864 Returns: a list of "IOThreadInfo" for each iothread
14865
14866 Since: 2.0
14867
14868 Example:
14869
14870 -> { "execute": "query-iothreads" }
14871 <- { "return": [
14872 {
14873 "id":"iothread0",
14874 "thread-id":3134
14875 },
14876 {
14877 "id":"iothread1",
14878 "thread-id":3135
14879 }
14880 ]
14881 }
14882
14883 BalloonInfo (Object)
14884
14885 Information about the guest balloon device.
14886
14887 Members:
14888
14889 "actual: int"
14890 the number of bytes the balloon currently contains
14891
14892 Since: 0.14.0
14893
14894 query-balloon (Command) Return information about the balloon device.
14895
14896 Returns: "BalloonInfo" on success
14897
14898 If the balloon driver is enabled but not functional because the KVM
14899 kernel module cannot support it, KvmMissingCap
14900
14901 If no balloon device is present, DeviceNotActive
14902
14903 Since: 0.14.0
14904
14905 Example:
14906
14907 -> { "execute": "query-balloon" }
14908 <- { "return": {
14909 "actual": 1073741824,
14910 }
14911 }
14912
14913 BALLOON_CHANGE (Event) Emitted when the guest changes the actual
14914 BALLOON level. This value is equivalent to the "actual" field return by
14915 the 'query-balloon' command
14916
14917 Arguments:
14918
14919 "actual: int"
14920 actual level of the guest memory balloon in bytes
14921
14922 Note: this event is rate-limited.
14923
14924 Since: 1.2
14925
14926 Example:
14927
14928 <- { "event": "BALLOON_CHANGE",
14929 "data": { "actual": 944766976 },
14930 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
14931
14932 PciMemoryRange (Object)
14933
14934 A PCI device memory region
14935
14936 Members:
14937
14938 "base: int"
14939 the starting address (guest physical)
14940
14941 "limit: int"
14942 the ending address (guest physical)
14943
14944 Since: 0.14.0
14945
14946 PciMemoryRegion (Object)
14947
14948 Information about a PCI device I/O region.
14949
14950 Members:
14951
14952 "bar: int"
14953 the index of the Base Address Register for this region
14954
14955 "type: string"
14956 'io' if the region is a PIO region 'memory' if the region is a MMIO
14957 region
14958
14959 "size: int"
14960 memory size
14961
14962 "prefetch: boolean" (optional)
14963 if "type" is 'memory', true if the memory is prefetchable
14964
14965 "mem_type_64: boolean" (optional)
14966 if "type" is 'memory', true if the BAR is 64-bit
14967
14968 "address: int"
14969 Not documented
14970
14971 Since: 0.14.0
14972
14973 PciBusInfo (Object)
14974
14975 Information about a bus of a PCI Bridge device
14976
14977 Members:
14978
14979 "number: int"
14980 primary bus interface number. This should be the number of the bus
14981 the device resides on.
14982
14983 "secondary: int"
14984 secondary bus interface number. This is the number of the main bus
14985 for the bridge
14986
14987 "subordinate: int"
14988 This is the highest number bus that resides below the bridge.
14989
14990 "io_range: PciMemoryRange"
14991 The PIO range for all devices on this bridge
14992
14993 "memory_range: PciMemoryRange"
14994 The MMIO range for all devices on this bridge
14995
14996 "prefetchable_range: PciMemoryRange"
14997 The range of prefetchable MMIO for all devices on this bridge
14998
14999 Since: 2.4
15000
15001 PciBridgeInfo (Object)
15002
15003 Information about a PCI Bridge device
15004
15005 Members:
15006
15007 "bus: PciBusInfo"
15008 information about the bus the device resides on
15009
15010 "devices: array of PciDeviceInfo" (optional)
15011 a list of "PciDeviceInfo" for each device on this bridge
15012
15013 Since: 0.14.0
15014
15015 PciDeviceClass (Object)
15016
15017 Information about the Class of a PCI device
15018
15019 Members:
15020
15021 "desc: string" (optional)
15022 a string description of the device's class
15023
15024 "class: int"
15025 the class code of the device
15026
15027 Since: 2.4
15028
15029 PciDeviceId (Object)
15030
15031 Information about the Id of a PCI device
15032
15033 Members:
15034
15035 "device: int"
15036 the PCI device id
15037
15038 "vendor: int"
15039 the PCI vendor id
15040
15041 "subsystem: int" (optional)
15042 the PCI subsystem id (since 3.1)
15043
15044 "subsystem-vendor: int" (optional)
15045 the PCI subsystem vendor id (since 3.1)
15046
15047 Since: 2.4
15048
15049 PciDeviceInfo (Object)
15050
15051 Information about a PCI device
15052
15053 Members:
15054
15055 "bus: int"
15056 the bus number of the device
15057
15058 "slot: int"
15059 the slot the device is located in
15060
15061 "function: int"
15062 the function of the slot used by the device
15063
15064 "class_info: PciDeviceClass"
15065 the class of the device
15066
15067 "id: PciDeviceId"
15068 the PCI device id
15069
15070 "irq: int" (optional)
15071 if an IRQ is assigned to the device, the IRQ number
15072
15073 "qdev_id: string"
15074 the device name of the PCI device
15075
15076 "pci_bridge: PciBridgeInfo" (optional)
15077 if the device is a PCI bridge, the bridge information
15078
15079 "regions: array of PciMemoryRegion"
15080 a list of the PCI I/O regions associated with the device
15081
15082 Notes: the contents of "class_info".desc are not stable and should only
15083 be treated as informational.
15084
15085 Since: 0.14.0
15086
15087 PciInfo (Object)
15088
15089 Information about a PCI bus
15090
15091 Members:
15092
15093 "bus: int"
15094 the bus index
15095
15096 "devices: array of PciDeviceInfo"
15097 a list of devices on this bus
15098
15099 Since: 0.14.0
15100
15101 query-pci (Command) Return information about the PCI bus topology of
15102 the guest.
15103
15104 Returns: a list of "PciInfo" for each PCI bus. Each bus is represented
15105 by a json-object, which has a key with a json-array of all PCI devices
15106 attached to it. Each device is represented by a json-object.
15107
15108 Since: 0.14.0
15109
15110 Example:
15111
15112 -> { "execute": "query-pci" }
15113 <- { "return": [
15114 {
15115 "bus": 0,
15116 "devices": [
15117 {
15118 "bus": 0,
15119 "qdev_id": "",
15120 "slot": 0,
15121 "class_info": {
15122 "class": 1536,
15123 "desc": "Host bridge"
15124 },
15125 "id": {
15126 "device": 32902,
15127 "vendor": 4663
15128 },
15129 "function": 0,
15130 "regions": [
15131 ]
15132 },
15133 {
15134 "bus": 0,
15135 "qdev_id": "",
15136 "slot": 1,
15137 "class_info": {
15138 "class": 1537,
15139 "desc": "ISA bridge"
15140 },
15141 "id": {
15142 "device": 32902,
15143 "vendor": 28672
15144 },
15145 "function": 0,
15146 "regions": [
15147 ]
15148 },
15149 {
15150 "bus": 0,
15151 "qdev_id": "",
15152 "slot": 1,
15153 "class_info": {
15154 "class": 257,
15155 "desc": "IDE controller"
15156 },
15157 "id": {
15158 "device": 32902,
15159 "vendor": 28688
15160 },
15161 "function": 1,
15162 "regions": [
15163 {
15164 "bar": 4,
15165 "size": 16,
15166 "address": 49152,
15167 "type": "io"
15168 }
15169 ]
15170 },
15171 {
15172 "bus": 0,
15173 "qdev_id": "",
15174 "slot": 2,
15175 "class_info": {
15176 "class": 768,
15177 "desc": "VGA controller"
15178 },
15179 "id": {
15180 "device": 4115,
15181 "vendor": 184
15182 },
15183 "function": 0,
15184 "regions": [
15185 {
15186 "prefetch": true,
15187 "mem_type_64": false,
15188 "bar": 0,
15189 "size": 33554432,
15190 "address": 4026531840,
15191 "type": "memory"
15192 },
15193 {
15194 "prefetch": false,
15195 "mem_type_64": false,
15196 "bar": 1,
15197 "size": 4096,
15198 "address": 4060086272,
15199 "type": "memory"
15200 },
15201 {
15202 "prefetch": false,
15203 "mem_type_64": false,
15204 "bar": 6,
15205 "size": 65536,
15206 "address": -1,
15207 "type": "memory"
15208 }
15209 ]
15210 },
15211 {
15212 "bus": 0,
15213 "qdev_id": "",
15214 "irq": 11,
15215 "slot": 4,
15216 "class_info": {
15217 "class": 1280,
15218 "desc": "RAM controller"
15219 },
15220 "id": {
15221 "device": 6900,
15222 "vendor": 4098
15223 },
15224 "function": 0,
15225 "regions": [
15226 {
15227 "bar": 0,
15228 "size": 32,
15229 "address": 49280,
15230 "type": "io"
15231 }
15232 ]
15233 }
15234 ]
15235 }
15236 ]
15237 }
15238
15239 Note: This example has been shortened as the real response is too long.
15240
15241 quit (Command) This command will cause the QEMU process to exit
15242 gracefully. While every attempt is made to send the QMP response
15243 before terminating, this is not guaranteed. When using this interface,
15244 a premature EOF would not be unexpected.
15245
15246 Since: 0.14.0
15247
15248 Example:
15249
15250 -> { "execute": "quit" }
15251 <- { "return": {} }
15252
15253 stop (Command) Stop all guest VCPU execution.
15254
15255 Since: 0.14.0
15256
15257 Notes: This function will succeed even if the guest is already in the
15258 stopped state. In "inmigrate" state, it will ensure that the guest
15259 remains paused once migration finishes, as if the -S option was passed
15260 on the command line.
15261
15262 Example:
15263
15264 -> { "execute": "stop" }
15265 <- { "return": {} }
15266
15267 system_reset (Command) Performs a hard reset of a guest.
15268
15269 Since: 0.14.0
15270
15271 Example:
15272
15273 -> { "execute": "system_reset" }
15274 <- { "return": {} }
15275
15276 system_powerdown (Command) Requests that a guest perform a powerdown
15277 operation.
15278
15279 Since: 0.14.0
15280
15281 Notes: A guest may or may not respond to this command. This command
15282 returning does not indicate that a guest has accepted the request or
15283 that it has shut down. Many guests will respond to this command by
15284 prompting the user in some way.
15285
15286 Example:
15287
15288 -> { "execute": "system_powerdown" }
15289 <- { "return": {} }
15290
15291 memsave (Command) Save a portion of guest memory to a file.
15292
15293 Arguments:
15294
15295 "val: int"
15296 the virtual address of the guest to start from
15297
15298 "size: int"
15299 the size of memory region to save
15300
15301 "filename: string"
15302 the file to save the memory to as binary data
15303
15304 "cpu-index: int" (optional)
15305 the index of the virtual CPU to use for translating the virtual
15306 address (defaults to CPU 0)
15307
15308 Returns: Nothing on success
15309
15310 Since: 0.14.0
15311
15312 Notes: Errors were not reliably returned until 1.1
15313
15314 Example:
15315
15316 -> { "execute": "memsave",
15317 "arguments": { "val": 10,
15318 "size": 100,
15319 "filename": "/tmp/virtual-mem-dump" } }
15320 <- { "return": {} }
15321
15322 pmemsave (Command) Save a portion of guest physical memory to a file.
15323
15324 Arguments:
15325
15326 "val: int"
15327 the physical address of the guest to start from
15328
15329 "size: int"
15330 the size of memory region to save
15331
15332 "filename: string"
15333 the file to save the memory to as binary data
15334
15335 Returns: Nothing on success
15336
15337 Since: 0.14.0
15338
15339 Notes: Errors were not reliably returned until 1.1
15340
15341 Example:
15342
15343 -> { "execute": "pmemsave",
15344 "arguments": { "val": 10,
15345 "size": 100,
15346 "filename": "/tmp/physical-mem-dump" } }
15347 <- { "return": {} }
15348
15349 cont (Command) Resume guest VCPU execution.
15350
15351 Since: 0.14.0
15352
15353 Returns: If successful, nothing
15354
15355 Notes: This command will succeed if the guest is currently running. It
15356 will also succeed if the guest is in the "inmigrate" state; in this
15357 case, the effect of the command is to make sure the guest starts once
15358 migration finishes, removing the effect of the -S command line option
15359 if it was passed.
15360
15361 Example:
15362
15363 -> { "execute": "cont" }
15364 <- { "return": {} }
15365
15366 x-exit-preconfig (Command) Exit from "preconfig" state
15367
15368 This command makes QEMU exit the preconfig state and proceed with VM
15369 initialization using configuration data provided on the command line
15370 and via the QMP monitor during the preconfig state. The command is only
15371 available during the preconfig state (i.e. when the --preconfig command
15372 line option was in use).
15373
15374 Since 3.0
15375
15376 Returns: nothing
15377
15378 Example:
15379
15380 -> { "execute": "x-exit-preconfig" }
15381 <- { "return": {} }
15382
15383 system_wakeup (Command) Wake up guest from suspend. If the guest has
15384 wake-up from suspend support enabled (wakeup-suspend-support flag from
15385 query-current-machine), wake-up guest from suspend if the guest is in
15386 SUSPENDED state. Return an error otherwise.
15387
15388 Since: 1.1
15389
15390 Returns: nothing.
15391
15392 Note: prior to 4.0, this command does nothing in case the guest isn't
15393 suspended.
15394
15395 Example:
15396
15397 -> { "execute": "system_wakeup" }
15398 <- { "return": {} }
15399
15400 inject-nmi (Command) Injects a Non-Maskable Interrupt into the default
15401 CPU (x86/s390) or all CPUs (ppc64). The command fails when the guest
15402 doesn't support injecting.
15403
15404 Returns: If successful, nothing
15405
15406 Since: 0.14.0
15407
15408 Note: prior to 2.1, this command was only supported for x86 and s390
15409 VMs
15410
15411 Example:
15412
15413 -> { "execute": "inject-nmi" }
15414 <- { "return": {} }
15415
15416 balloon (Command) Request the balloon driver to change its balloon
15417 size.
15418
15419 Arguments:
15420
15421 "value: int"
15422 the target size of the balloon in bytes
15423
15424 Returns: Nothing on success If the balloon driver is enabled but not
15425 functional because the KVM kernel module cannot support it,
15426 KvmMissingCap If no balloon device is present, DeviceNotActive
15427
15428 Notes: This command just issues a request to the guest. When it
15429 returns, the balloon size may not have changed. A guest can change the
15430 balloon size independent of this command.
15431
15432 Since: 0.14.0
15433
15434 Example:
15435
15436 -> { "execute": "balloon", "arguments": { "value": 536870912 } }
15437 <- { "return": {} }
15438
15439 human-monitor-command (Command) Execute a command on the human monitor
15440 and return the output.
15441
15442 Arguments:
15443
15444 "command-line: string"
15445 the command to execute in the human monitor
15446
15447 "cpu-index: int" (optional)
15448 The CPU to use for commands that require an implicit CPU
15449
15450 Features:
15451
15452 "savevm-monitor-nodes"
15453 If present, HMP command savevm only snapshots monitor-owned nodes
15454 if they have no parents. This allows the use of 'savevm' with
15455 -blockdev. (since 4.2)
15456
15457 Returns: the output of the command as a string
15458
15459 Since: 0.14.0
15460
15461 Notes: This command only exists as a stop-gap. Its use is highly
15462 discouraged. The semantics of this command are not guaranteed: this
15463 means that command names, arguments and responses can change or be
15464 removed at ANY time. Applications that rely on long term stability
15465 guarantees should NOT use this command.
15466
15467 Known limitations:
15468
15469 · This command is stateless, this means that commands that depend on
15470 state information (such as getfd) might not work
15471
15472 · Commands that prompt the user for data don't currently work
15473
15474 Example:
15475
15476 -> { "execute": "human-monitor-command",
15477 "arguments": { "command-line": "info kvm" } }
15478 <- { "return": "kvm support: enabled\r\n" }
15479
15480 change (Command) This command is multiple commands multiplexed
15481 together.
15482
15483 Arguments:
15484
15485 "device: string"
15486 This is normally the name of a block device but it may also be
15487 'vnc'. when it's 'vnc', then sub command depends on "target"
15488
15489 "target: string"
15490 If "device" is a block device, then this is the new filename. If
15491 "device" is 'vnc', then if the value 'password' selects the vnc
15492 change password command. Otherwise, this specifies a new server
15493 URI address to listen to for VNC connections.
15494
15495 "arg: string" (optional)
15496 If "device" is a block device, then this is an optional format to
15497 open the device with. If "device" is 'vnc' and "target" is
15498 'password', this is the new VNC password to set. See change-vnc-
15499 password for additional notes.
15500
15501 Returns: Nothing on success. If "device" is not a valid block device,
15502 DeviceNotFound
15503
15504 Notes: This interface is deprecated, and it is strongly recommended
15505 that you avoid using it. For changing block devices, use blockdev-
15506 change-medium; for changing VNC parameters, use change-vnc-password.
15507
15508 Since: 0.14.0
15509
15510 Example:
15511
15512 1. Change a removable medium
15513
15514 -> { "execute": "change",
15515 "arguments": { "device": "ide1-cd0",
15516 "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
15517 <- { "return": {} }
15518
15519 2. Change VNC password
15520
15521 -> { "execute": "change",
15522 "arguments": { "device": "vnc", "target": "password",
15523 "arg": "foobar1" } }
15524 <- { "return": {} }
15525
15526 xen-set-global-dirty-log (Command) Enable or disable the global dirty
15527 log mode.
15528
15529 Arguments:
15530
15531 "enable: boolean"
15532 true to enable, false to disable.
15533
15534 Returns: nothing
15535
15536 Since: 1.3
15537
15538 Example:
15539
15540 -> { "execute": "xen-set-global-dirty-log",
15541 "arguments": { "enable": true } }
15542 <- { "return": {} }
15543
15544 getfd (Command) Receive a file descriptor via SCM rights and assign it
15545 a name
15546
15547 Arguments:
15548
15549 "fdname: string"
15550 file descriptor name
15551
15552 Returns: Nothing on success
15553
15554 Since: 0.14.0
15555
15556 Notes: If "fdname" already exists, the file descriptor assigned to it
15557 will be closed and replaced by the received file descriptor.
15558
15559 The 'closefd' command can be used to explicitly close the file
15560 descriptor when it is no longer needed.
15561
15562 Example:
15563
15564 -> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
15565 <- { "return": {} }
15566
15567 closefd (Command) Close a file descriptor previously passed via SCM
15568 rights
15569
15570 Arguments:
15571
15572 "fdname: string"
15573 file descriptor name
15574
15575 Returns: Nothing on success
15576
15577 Since: 0.14.0
15578
15579 Example:
15580
15581 -> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
15582 <- { "return": {} }
15583
15584 MemoryInfo (Object)
15585
15586 Actual memory information in bytes.
15587
15588 Members:
15589
15590 "base-memory: int"
15591 size of "base" memory specified with command line option -m.
15592
15593 "plugged-memory: int" (optional)
15594 size of memory that can be hot-unplugged. This field is omitted if
15595 target doesn't support memory hotplug (i.e. CONFIG_MEM_DEVICE not
15596 defined at build time).
15597
15598 Since: 2.11.0
15599
15600 query-memory-size-summary (Command) Return the amount of initially
15601 allocated and present hotpluggable (if enabled) memory in bytes.
15602
15603 Example:
15604
15605 -> { "execute": "query-memory-size-summary" }
15606 <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } }
15607
15608 Since: 2.11.0
15609
15610 AddfdInfo (Object)
15611
15612 Information about a file descriptor that was added to an fd set.
15613
15614 Members:
15615
15616 "fdset-id: int"
15617 The ID of the fd set that "fd" was added to.
15618
15619 "fd: int"
15620 The file descriptor that was received via SCM rights and added to
15621 the fd set.
15622
15623 Since: 1.2.0
15624
15625 add-fd (Command) Add a file descriptor, that was passed via SCM
15626 rights, to an fd set.
15627
15628 Arguments:
15629
15630 "fdset-id: int" (optional)
15631 The ID of the fd set to add the file descriptor to.
15632
15633 "opaque: string" (optional)
15634 A free-form string that can be used to describe the fd.
15635
15636 Returns: "AddfdInfo" on success
15637
15638 If file descriptor was not received, FdNotSupplied
15639
15640 If "fdset-id" is a negative value, InvalidParameterValue
15641
15642 Notes: The list of fd sets is shared by all monitor connections.
15643
15644 If "fdset-id" is not specified, a new fd set will be created.
15645
15646 Since: 1.2.0
15647
15648 Example:
15649
15650 -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } }
15651 <- { "return": { "fdset-id": 1, "fd": 3 } }
15652
15653 remove-fd (Command) Remove a file descriptor from an fd set.
15654
15655 Arguments:
15656
15657 "fdset-id: int"
15658 The ID of the fd set that the file descriptor belongs to.
15659
15660 "fd: int" (optional)
15661 The file descriptor that is to be removed.
15662
15663 Returns: Nothing on success If "fdset-id" or "fd" is not found,
15664 FdNotFound
15665
15666 Since: 1.2.0
15667
15668 Notes: The list of fd sets is shared by all monitor connections.
15669
15670 If "fd" is not specified, all file descriptors in "fdset-id" will be
15671 removed.
15672
15673 Example:
15674
15675 -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } }
15676 <- { "return": {} }
15677
15678 FdsetFdInfo (Object)
15679
15680 Information about a file descriptor that belongs to an fd set.
15681
15682 Members:
15683
15684 "fd: int"
15685 The file descriptor value.
15686
15687 "opaque: string" (optional)
15688 A free-form string that can be used to describe the fd.
15689
15690 Since: 1.2.0
15691
15692 FdsetInfo (Object)
15693
15694 Information about an fd set.
15695
15696 Members:
15697
15698 "fdset-id: int"
15699 The ID of the fd set.
15700
15701 "fds: array of FdsetFdInfo"
15702 A list of file descriptors that belong to this fd set.
15703
15704 Since: 1.2.0
15705
15706 query-fdsets (Command) Return information describing all fd sets.
15707
15708 Returns: A list of "FdsetInfo"
15709
15710 Since: 1.2.0
15711
15712 Note: The list of fd sets is shared by all monitor connections.
15713
15714 Example:
15715
15716 -> { "execute": "query-fdsets" }
15717 <- { "return": [
15718 {
15719 "fds": [
15720 {
15721 "fd": 30,
15722 "opaque": "rdonly:/path/to/file"
15723 },
15724 {
15725 "fd": 24,
15726 "opaque": "rdwr:/path/to/file"
15727 }
15728 ],
15729 "fdset-id": 1
15730 },
15731 {
15732 "fds": [
15733 {
15734 "fd": 28
15735 },
15736 {
15737 "fd": 29
15738 }
15739 ],
15740 "fdset-id": 0
15741 }
15742 ]
15743 }
15744
15745 AcpiTableOptions (Object)
15746
15747 Specify an ACPI table on the command line to load.
15748
15749 At most one of "file" and "data" can be specified. The list of files
15750 specified by any one of them is loaded and concatenated in order. If
15751 both are omitted, "data" is implied.
15752
15753 Other fields / optargs can be used to override fields of the generic
15754 ACPI table header; refer to the ACPI specification 5.0, section 5.2.6
15755 System Description Table Header. If a header field is not overridden,
15756 then the corresponding value from the concatenated blob is used (in
15757 case of "file"), or it is filled in with a hard-coded value (in case of
15758 "data").
15759
15760 String fields are copied into the matching ACPI member from lowest
15761 address upwards, and silently truncated / NUL-padded to length.
15762
15763 Members:
15764
15765 "sig: string" (optional)
15766 table signature / identifier (4 bytes)
15767
15768 "rev: int" (optional)
15769 table revision number (dependent on signature, 1 byte)
15770
15771 "oem_id: string" (optional)
15772 OEM identifier (6 bytes)
15773
15774 "oem_table_id: string" (optional)
15775 OEM table identifier (8 bytes)
15776
15777 "oem_rev: int" (optional)
15778 OEM-supplied revision number (4 bytes)
15779
15780 "asl_compiler_id: string" (optional)
15781 identifier of the utility that created the table (4 bytes)
15782
15783 "asl_compiler_rev: int" (optional)
15784 revision number of the utility that created the table (4 bytes)
15785
15786 "file: string" (optional)
15787 colon (:) separated list of pathnames to load and concatenate as
15788 table data. The resultant binary blob is expected to have an ACPI
15789 table header. At least one file is required. This field excludes
15790 "data".
15791
15792 "data: string" (optional)
15793 colon (:) separated list of pathnames to load and concatenate as
15794 table data. The resultant binary blob must not have an ACPI table
15795 header. At least one file is required. This field excludes "file".
15796
15797 Since: 1.5
15798
15799 CommandLineParameterType (Enum)
15800
15801 Possible types for an option parameter.
15802
15803 Values:
15804
15805 "string"
15806 accepts a character string
15807
15808 "boolean"
15809 accepts "on" or "off"
15810
15811 "number"
15812 accepts a number
15813
15814 "size"
15815 accepts a number followed by an optional suffix (K)ilo, (M)ega,
15816 (G)iga, (T)era
15817
15818 Since: 1.5
15819
15820 CommandLineParameterInfo (Object)
15821
15822 Details about a single parameter of a command line option.
15823
15824 Members:
15825
15826 "name: string"
15827 parameter name
15828
15829 "type: CommandLineParameterType"
15830 parameter "CommandLineParameterType"
15831
15832 "help: string" (optional)
15833 human readable text string, not suitable for parsing.
15834
15835 "default: string" (optional)
15836 default value string (since 2.1)
15837
15838 Since: 1.5
15839
15840 CommandLineOptionInfo (Object)
15841
15842 Details about a command line option, including its list of parameter
15843 details
15844
15845 Members:
15846
15847 "option: string"
15848 option name
15849
15850 "parameters: array of CommandLineParameterInfo"
15851 an array of "CommandLineParameterInfo"
15852
15853 Since: 1.5
15854
15855 query-command-line-options (Command) Query command line option schema.
15856
15857 Arguments:
15858
15859 "option: string" (optional)
15860 option name
15861
15862 Returns: list of "CommandLineOptionInfo" for all options (or for the
15863 given "option"). Returns an error if the given "option" doesn't exist.
15864
15865 Since: 1.5
15866
15867 Example:
15868
15869 -> { "execute": "query-command-line-options",
15870 "arguments": { "option": "option-rom" } }
15871 <- { "return": [
15872 {
15873 "parameters": [
15874 {
15875 "name": "romfile",
15876 "type": "string"
15877 },
15878 {
15879 "name": "bootindex",
15880 "type": "number"
15881 }
15882 ],
15883 "option": "option-rom"
15884 }
15885 ]
15886 }
15887
15888 PCDIMMDeviceInfo (Object)
15889
15890 PCDIMMDevice state information
15891
15892 Members:
15893
15894 "id: string" (optional)
15895 device's ID
15896
15897 "addr: int"
15898 physical address, where device is mapped
15899
15900 "size: int"
15901 size of memory that the device provides
15902
15903 "slot: int"
15904 slot number at which device is plugged in
15905
15906 "node: int"
15907 NUMA node number where device is plugged in
15908
15909 "memdev: string"
15910 memory backend linked with device
15911
15912 "hotplugged: boolean"
15913 true if device was hotplugged
15914
15915 "hotpluggable: boolean"
15916 true if device if could be added/removed while machine is running
15917
15918 Since: 2.1
15919
15920 VirtioPMEMDeviceInfo (Object)
15921
15922 VirtioPMEM state information
15923
15924 Members:
15925
15926 "id: string" (optional)
15927 device's ID
15928
15929 "memaddr: int"
15930 physical address in memory, where device is mapped
15931
15932 "size: int"
15933 size of memory that the device provides
15934
15935 "memdev: string"
15936 memory backend linked with device
15937
15938 Since: 4.1
15939
15940 MemoryDeviceInfo (Object)
15941
15942 Union containing information about a memory device
15943
15944 nvdimm is included since 2.12. virtio-pmem is included since 4.1.
15945
15946 Members:
15947
15948 "type"
15949 One of "dimm", "nvdimm", "virtio-pmem"
15950
15951 "data: PCDIMMDeviceInfo" when "type" is "dimm"
15952 "data: PCDIMMDeviceInfo" when "type" is "nvdimm"
15953 "data: VirtioPMEMDeviceInfo" when "type" is "virtio-pmem"
15954
15955 Since: 2.1
15956
15957 query-memory-devices (Command) Lists available memory devices and
15958 their state
15959
15960 Since: 2.1
15961
15962 Example:
15963
15964 -> { "execute": "query-memory-devices" }
15965 <- { "return": [ { "data":
15966 { "addr": 5368709120,
15967 "hotpluggable": true,
15968 "hotplugged": true,
15969 "id": "d1",
15970 "memdev": "/objects/memX",
15971 "node": 0,
15972 "size": 1073741824,
15973 "slot": 0},
15974 "type": "dimm"
15975 } ] }
15976
15977 MEM_UNPLUG_ERROR (Event) Emitted when memory hot unplug error occurs.
15978
15979 Arguments:
15980
15981 "device: string"
15982 device name
15983
15984 "msg: string"
15985 Informative message
15986
15987 Since: 2.4
15988
15989 Example:
15990
15991 <- { "event": "MEM_UNPLUG_ERROR"
15992 "data": { "device": "dimm1",
15993 "msg": "acpi: device unplug for unsupported device"
15994 },
15995 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
15996
15997 ACPISlotType (Enum)
15998
15999 Values:
16000
16001 "DIMM"
16002 memory slot
16003
16004 "CPU"
16005 logical CPU slot (since 2.7)
16006
16007 ACPIOSTInfo (Object)
16008
16009 OSPM Status Indication for a device For description of possible values
16010 of "source" and "status" fields see "_OST (OSPM Status Indication)"
16011 chapter of ACPI5.0 spec.
16012
16013 Members:
16014
16015 "device: string" (optional)
16016 device ID associated with slot
16017
16018 "slot: string"
16019 slot ID, unique per slot of a given "slot-type"
16020
16021 "slot-type: ACPISlotType"
16022 type of the slot
16023
16024 "source: int"
16025 an integer containing the source event
16026
16027 "status: int"
16028 an integer containing the status code
16029
16030 Since: 2.1
16031
16032 query-acpi-ospm-status (Command) Return a list of ACPIOSTInfo for
16033 devices that support status reporting via ACPI _OST method.
16034
16035 Since: 2.1
16036
16037 Example:
16038
16039 -> { "execute": "query-acpi-ospm-status" }
16040 <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
16041 { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
16042 { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
16043 { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
16044 ]}
16045
16046 ACPI_DEVICE_OST (Event) Emitted when guest executes ACPI _OST method.
16047
16048 Arguments:
16049
16050 "info: ACPIOSTInfo"
16051 OSPM Status Indication
16052
16053 Since: 2.1
16054
16055 Example:
16056
16057 <- { "event": "ACPI_DEVICE_OST",
16058 "data": { "device": "d1", "slot": "0",
16059 "slot-type": "DIMM", "source": 1, "status": 0 } }
16060
16061 ReplayMode (Enum)
16062
16063 Mode of the replay subsystem.
16064
16065 Values:
16066
16067 "none"
16068 normal execution mode. Replay or record are not enabled.
16069
16070 "record"
16071 record mode. All non-deterministic data is written into the replay
16072 log.
16073
16074 "play"
16075 replay mode. Non-deterministic data required for system execution
16076 is read from the log.
16077
16078 Since: 2.5
16079
16080 xen-load-devices-state (Command) Load the state of all devices from
16081 file. The RAM and the block devices of the VM are not loaded by this
16082 command.
16083
16084 Arguments:
16085
16086 "filename: string"
16087 the file to load the state of the devices from as binary data. See
16088 xen-save-devices-state.txt for a description of the binary format.
16089
16090 Since: 2.7
16091
16092 Example:
16093
16094 -> { "execute": "xen-load-devices-state",
16095 "arguments": { "filename": "/tmp/resume" } }
16096 <- { "return": {} }
16097
16098 GuidInfo (Object)
16099
16100 GUID information.
16101
16102 Members:
16103
16104 "guid: string"
16105 the globally unique identifier
16106
16107 Since: 2.9
16108
16109 query-vm-generation-id (Command) Show Virtual Machine Generation ID
16110
16111 Since: 2.9
16112
16113 RTC_CHANGE (Event) Emitted when the guest changes the RTC time.
16114
16115 Arguments:
16116
16117 "offset: int"
16118 offset between base RTC clock (as specified by -rtc base), and new
16119 RTC clock value
16120
16121 Note: This event is rate-limited.
16122
16123 Since: 0.13.0
16124
16125 Example:
16126
16127 <- { "event": "RTC_CHANGE",
16128 "data": { "offset": 78 },
16129 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
16130
16131 If: "defined(TARGET_ALPHA) || defined(TARGET_ARM) ||
16132 defined(TARGET_HPPA) || defined(TARGET_I386) || defined(TARGET_MIPS) ||
16133 defined(TARGET_MIPS64) || defined(TARGET_MOXIE) || defined(TARGET_PPC)
16134 || defined(TARGET_PPC64) || defined(TARGET_S390X) ||
16135 defined(TARGET_SH4) || defined(TARGET_SPARC)"
16136
16137 rtc-reset-reinjection (Command) This command will reset the RTC
16138 interrupt reinjection backlog. Can be used if another mechanism to
16139 synchronize guest time is in effect, for example QEMU guest agent's
16140 guest-set-time command.
16141
16142 Since: 2.1
16143
16144 Example:
16145
16146 -> { "execute": "rtc-reset-reinjection" }
16147 <- { "return": {} }
16148
16149 If: "defined(TARGET_I386)"
16150
16151 SevState (Enum)
16152
16153 An enumeration of SEV state information used during "query-sev".
16154
16155 Values:
16156
16157 "uninit"
16158 The guest is uninitialized.
16159
16160 "launch-update"
16161 The guest is currently being launched; plaintext data and register
16162 state is being imported.
16163
16164 "launch-secret"
16165 The guest is currently being launched; ciphertext data is being
16166 imported.
16167
16168 "running"
16169 The guest is fully launched or migrated in.
16170
16171 "send-update"
16172 The guest is currently being migrated out to another machine.
16173
16174 "receive-update"
16175 The guest is currently being migrated from another machine.
16176
16177 Since: 2.12
16178
16179 If: "defined(TARGET_I386)"
16180
16181 SevInfo (Object)
16182
16183 Information about Secure Encrypted Virtualization (SEV) support
16184
16185 Members:
16186
16187 "enabled: boolean"
16188 true if SEV is active
16189
16190 "api-major: int"
16191 SEV API major version
16192
16193 "api-minor: int"
16194 SEV API minor version
16195
16196 "build-id: int"
16197 SEV FW build id
16198
16199 "policy: int"
16200 SEV policy value
16201
16202 "state: SevState"
16203 SEV guest state
16204
16205 "handle: int"
16206 SEV firmware handle
16207
16208 Since: 2.12
16209
16210 If: "defined(TARGET_I386)"
16211
16212 query-sev (Command) Returns information about SEV
16213
16214 Returns: "SevInfo"
16215
16216 Since: 2.12
16217
16218 Example:
16219
16220 -> { "execute": "query-sev" }
16221 <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0,
16222 "build-id" : 0, "policy" : 0, "state" : "running",
16223 "handle" : 1 } }
16224
16225 If: "defined(TARGET_I386)"
16226
16227 SevLaunchMeasureInfo (Object)
16228
16229 SEV Guest Launch measurement information
16230
16231 Members:
16232
16233 "data: string"
16234 the measurement value encoded in base64
16235
16236 Since: 2.12
16237
16238 If: "defined(TARGET_I386)"
16239
16240 query-sev-launch-measure (Command) Query the SEV guest launch
16241 information.
16242
16243 Returns: The "SevLaunchMeasureInfo" for the guest
16244
16245 Since: 2.12
16246
16247 Example:
16248
16249 -> { "execute": "query-sev-launch-measure" }
16250 <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } }
16251
16252 If: "defined(TARGET_I386)"
16253
16254 SevCapability (Object)
16255
16256 The struct describes capability for a Secure Encrypted Virtualization
16257 feature.
16258
16259 Members:
16260
16261 "pdh: string"
16262 Platform Diffie-Hellman key (base64 encoded)
16263
16264 "cert-chain: string"
16265 PDH certificate chain (base64 encoded)
16266
16267 "cbitpos: int"
16268 C-bit location in page table entry
16269
16270 "reduced-phys-bits: int"
16271 Number of physical Address bit reduction when SEV is enabled
16272
16273 Since: 2.12
16274
16275 If: "defined(TARGET_I386)"
16276
16277 query-sev-capabilities (Command) This command is used to get the SEV
16278 capabilities, and is supported on AMD X86 platforms only.
16279
16280 Returns: SevCapability objects.
16281
16282 Since: 2.12
16283
16284 Example:
16285
16286 -> { "execute": "query-sev-capabilities" }
16287 <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE",
16288 "cbitpos": 47, "reduced-phys-bits": 5}}
16289
16290 If: "defined(TARGET_I386)"
16291
16292 dump-skeys (Command) Dump guest's storage keys
16293
16294 Arguments:
16295
16296 "filename: string"
16297 the path to the file to dump to
16298
16299 This command is only supported on s390 architecture.
16300
16301 Since: 2.5
16302
16303 Example:
16304
16305 -> { "execute": "dump-skeys",
16306 "arguments": { "filename": "/tmp/skeys" } }
16307 <- { "return": {} }
16308
16309 If: "defined(TARGET_S390X)"
16310
16311 GICCapability (Object)
16312
16313 The struct describes capability for a specific GIC (Generic Interrupt
16314 Controller) version. These bits are not only decided by QEMU/KVM
16315 software version, but also decided by the hardware that the program is
16316 running upon.
16317
16318 Members:
16319
16320 "version: int"
16321 version of GIC to be described. Currently, only 2 and 3 are
16322 supported.
16323
16324 "emulated: boolean"
16325 whether current QEMU/hardware supports emulated GIC device in user
16326 space.
16327
16328 "kernel: boolean"
16329 whether current QEMU/hardware supports hardware accelerated GIC
16330 device in kernel.
16331
16332 Since: 2.6
16333
16334 If: "defined(TARGET_ARM)"
16335
16336 query-gic-capabilities (Command) This command is ARM-only. It will
16337 return a list of GICCapability objects that describe its capability
16338 bits.
16339
16340 Returns: a list of GICCapability objects.
16341
16342 Since: 2.6
16343
16344 Example:
16345
16346 -> { "execute": "query-gic-capabilities" }
16347 <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
16348 { "version": 3, "emulated": false, "kernel": true } ] }
16349
16350 If: "defined(TARGET_ARM)"
16351
16352 AudiodevPerDirectionOptions (Object)
16353
16354 General audio backend options that are used for both playback and
16355 recording.
16356
16357 Members:
16358
16359 "mixing-engine: boolean" (optional)
16360 use QEMU's mixing engine to mix all streams inside QEMU and convert
16361 audio formats when not supported by the backend. When set to off,
16362 fixed-settings must be also off (default on, since 4.2)
16363
16364 "fixed-settings: boolean" (optional)
16365 use fixed settings for host input/output. When off, frequency,
16366 channels and format must not be specified (default true)
16367
16368 "frequency: int" (optional)
16369 frequency to use when using fixed settings (default 44100)
16370
16371 "channels: int" (optional)
16372 number of channels when using fixed settings (default 2)
16373
16374 "voices: int" (optional)
16375 number of voices to use (default 1)
16376
16377 "format: AudioFormat" (optional)
16378 sample format to use when using fixed settings (default s16)
16379
16380 "buffer-length: int" (optional)
16381 the buffer length in microseconds
16382
16383 Since: 4.0
16384
16385 AudiodevGenericOptions (Object)
16386
16387 Generic driver-specific options.
16388
16389 Members:
16390
16391 "in: AudiodevPerDirectionOptions" (optional)
16392 options of the capture stream
16393
16394 "out: AudiodevPerDirectionOptions" (optional)
16395 options of the playback stream
16396
16397 Since: 4.0
16398
16399 AudiodevAlsaPerDirectionOptions (Object)
16400
16401 Options of the ALSA backend that are used for both playback and
16402 recording.
16403
16404 Members:
16405
16406 "dev: string" (optional)
16407 the name of the ALSA device to use (default 'default')
16408
16409 "period-length: int" (optional)
16410 the period length in microseconds
16411
16412 "try-poll: boolean" (optional)
16413 attempt to use poll mode, falling back to non-polling access on
16414 failure (default true)
16415
16416 The members of "AudiodevPerDirectionOptions"
16417
16418 Since: 4.0
16419
16420 AudiodevAlsaOptions (Object)
16421
16422 Options of the ALSA audio backend.
16423
16424 Members:
16425
16426 "in: AudiodevAlsaPerDirectionOptions" (optional)
16427 options of the capture stream
16428
16429 "out: AudiodevAlsaPerDirectionOptions" (optional)
16430 options of the playback stream
16431
16432 "threshold: int" (optional)
16433 set the threshold (in microseconds) when playback starts
16434
16435 Since: 4.0
16436
16437 AudiodevCoreaudioPerDirectionOptions (Object)
16438
16439 Options of the Core Audio backend that are used for both playback and
16440 recording.
16441
16442 Members:
16443
16444 "buffer-count: int" (optional)
16445 number of buffers
16446
16447 The members of "AudiodevPerDirectionOptions"
16448
16449 Since: 4.0
16450
16451 AudiodevCoreaudioOptions (Object)
16452
16453 Options of the coreaudio audio backend.
16454
16455 Members:
16456
16457 "in: AudiodevCoreaudioPerDirectionOptions" (optional)
16458 options of the capture stream
16459
16460 "out: AudiodevCoreaudioPerDirectionOptions" (optional)
16461 options of the playback stream
16462
16463 Since: 4.0
16464
16465 AudiodevDsoundOptions (Object)
16466
16467 Options of the DirectSound audio backend.
16468
16469 Members:
16470
16471 "in: AudiodevPerDirectionOptions" (optional)
16472 options of the capture stream
16473
16474 "out: AudiodevPerDirectionOptions" (optional)
16475 options of the playback stream
16476
16477 "latency: int" (optional)
16478 add extra latency to playback in microseconds (default 10000)
16479
16480 Since: 4.0
16481
16482 AudiodevOssPerDirectionOptions (Object)
16483
16484 Options of the OSS backend that are used for both playback and
16485 recording.
16486
16487 Members:
16488
16489 "dev: string" (optional)
16490 file name of the OSS device (default '/dev/dsp')
16491
16492 "buffer-count: int" (optional)
16493 number of buffers
16494
16495 "try-poll: boolean" (optional)
16496 attempt to use poll mode, falling back to non-polling access on
16497 failure (default true)
16498
16499 The members of "AudiodevPerDirectionOptions"
16500
16501 Since: 4.0
16502
16503 AudiodevOssOptions (Object)
16504
16505 Options of the OSS audio backend.
16506
16507 Members:
16508
16509 "in: AudiodevOssPerDirectionOptions" (optional)
16510 options of the capture stream
16511
16512 "out: AudiodevOssPerDirectionOptions" (optional)
16513 options of the playback stream
16514
16515 "try-mmap: boolean" (optional)
16516 try using memory-mapped access, falling back to non-memory-mapped
16517 access on failure (default true)
16518
16519 "exclusive: boolean" (optional)
16520 open device in exclusive mode (vmix won't work) (default false)
16521
16522 "dsp-policy: int" (optional)
16523 set the timing policy of the device (between 0 and 10, where
16524 smaller number means smaller latency but higher CPU usage) or -1 to
16525 use fragment mode (option ignored on some platforms) (default 5)
16526
16527 Since: 4.0
16528
16529 AudiodevPaPerDirectionOptions (Object)
16530
16531 Options of the Pulseaudio backend that are used for both playback and
16532 recording.
16533
16534 Members:
16535
16536 "name: string" (optional)
16537 name of the sink/source to use
16538
16539 "stream-name: string" (optional)
16540 name of the PulseAudio stream created by qemu. Can be used to
16541 identify the stream in PulseAudio when you create multiple
16542 PulseAudio devices or run multiple qemu instances (default:
16543 audiodev's id, since 4.2)
16544
16545 "latency: int" (optional)
16546 latency you want PulseAudio to achieve in microseconds (default
16547 15000)
16548
16549 The members of "AudiodevPerDirectionOptions"
16550
16551 Since: 4.0
16552
16553 AudiodevPaOptions (Object)
16554
16555 Options of the PulseAudio audio backend.
16556
16557 Members:
16558
16559 "in: AudiodevPaPerDirectionOptions" (optional)
16560 options of the capture stream
16561
16562 "out: AudiodevPaPerDirectionOptions" (optional)
16563 options of the playback stream
16564
16565 "server: string" (optional)
16566 PulseAudio server address (default: let PulseAudio choose)
16567
16568 Since: 4.0
16569
16570 AudiodevWavOptions (Object)
16571
16572 Options of the wav audio backend.
16573
16574 Members:
16575
16576 "in: AudiodevPerDirectionOptions" (optional)
16577 options of the capture stream
16578
16579 "out: AudiodevPerDirectionOptions" (optional)
16580 options of the playback stream
16581
16582 "path: string" (optional)
16583 name of the wav file to record (default 'qemu.wav')
16584
16585 Since: 4.0
16586
16587 AudioFormat (Enum)
16588
16589 An enumeration of possible audio formats.
16590
16591 Values:
16592
16593 "u8"
16594 Not documented
16595
16596 "s8"
16597 Not documented
16598
16599 "u16"
16600 Not documented
16601
16602 "s16"
16603 Not documented
16604
16605 "u32"
16606 Not documented
16607
16608 "s32"
16609 Not documented
16610
16611 Since: 4.0
16612
16613 AudiodevDriver (Enum)
16614
16615 An enumeration of possible audio backend drivers.
16616
16617 Values:
16618
16619 "none"
16620 Not documented
16621
16622 "alsa"
16623 Not documented
16624
16625 "coreaudio"
16626 Not documented
16627
16628 "dsound"
16629 Not documented
16630
16631 "oss"
16632 Not documented
16633
16634 "pa"
16635 Not documented
16636
16637 "sdl"
16638 Not documented
16639
16640 "spice"
16641 Not documented
16642
16643 "wav"
16644 Not documented
16645
16646 Since: 4.0
16647
16648 Audiodev (Object)
16649
16650 Options of an audio backend.
16651
16652 Members:
16653
16654 "id: string"
16655 identifier of the backend
16656
16657 "driver: AudiodevDriver"
16658 the backend driver to use
16659
16660 "timer-period: int" (optional)
16661 timer period (in microseconds, 0: use lowest possible)
16662
16663 The members of "AudiodevGenericOptions" when "driver" is "none"
16664 The members of "AudiodevAlsaOptions" when "driver" is "alsa"
16665 The members of "AudiodevCoreaudioOptions" when "driver" is "coreaudio"
16666 The members of "AudiodevDsoundOptions" when "driver" is "dsound"
16667 The members of "AudiodevOssOptions" when "driver" is "oss"
16668 The members of "AudiodevPaOptions" when "driver" is "pa"
16669 The members of "AudiodevGenericOptions" when "driver" is "sdl"
16670 The members of "AudiodevGenericOptions" when "driver" is "spice"
16671 The members of "AudiodevWavOptions" when "driver" is "wav"
16672
16673 Since: 4.0
16674
16675
16676
16677 2020-03-17 QEMU-QMP-REF.7(7)