1QEMU-QMP-REF(7)                      QEMU                      QEMU-QMP-REF(7)
2
3
4

NAME

6       qemu-qmp-ref - QEMU QMP Reference Manual
7
8   Contents
9QEMU QMP Reference Manual
10
11Introduction
12
13This document describes all commands currently supported by QMP.
14
15Stability Considerations
16
17The  current QMP command set (described in this file) may be use‐
18             ful for a number of use cases, however it's limited  and  several
19             commands  have  bad  defined  semantics, specially with regard to
20             command completion.
21
22QMP errors
23
24QapiErrorClass (Enum)
25
26Common data types
27
28IoOperationType (Enum)
29
30OnOffAuto (Enum)
31
32OnOffSplit (Enum)
33
34String (Object)
35
36StrOrNull (Alternate)
37
38OffAutoPCIBAR (Enum)
39
40PCIELinkSpeed (Enum)
41
42PCIELinkWidth (Enum)
43
44HostMemPolicy (Enum)
45
46NetFilterDirection (Enum)
47
48GrabToggleKeys (Enum)
49
50HumanReadableText (Object)
51
52Socket data types
53
54NetworkAddressFamily (Enum)
55
56InetSocketAddressBase (Object)
57
58InetSocketAddress (Object)
59
60UnixSocketAddress (Object)
61
62VsockSocketAddress (Object)
63
64InetSocketAddressWrapper (Object)
65
66UnixSocketAddressWrapper (Object)
67
68VsockSocketAddressWrapper (Object)
69
70StringWrapper (Object)
71
72SocketAddressLegacy (Object)
73
74SocketAddressType (Enum)
75
76SocketAddress (Object)
77
78VM run state
79
80RunState (Enum)
81
82ShutdownCause (Enum)
83
84StatusInfo (Object)
85
86query-status (Command)
87
88SHUTDOWN (Event)
89
90POWERDOWN (Event)
91
92RESET (Event)
93
94STOP (Event)
95
96RESUME (Event)
97
98SUSPEND (Event)
99
100SUSPEND_DISK (Event)
101
102WAKEUP (Event)
103
104WATCHDOG (Event)
105
106WatchdogAction (Enum)
107
108RebootAction (Enum)
109
110ShutdownAction (Enum)
111
112PanicAction (Enum)
113
114watchdog-set-action (Command)
115
116set-action (Command)
117
118GUEST_PANICKED (Event)
119
120GUEST_CRASHLOADED (Event)
121
122GuestPanicAction (Enum)
123
124GuestPanicInformationType (Enum)
125
126GuestPanicInformation (Object)
127
128GuestPanicInformationHyperV (Object)
129
130S390CrashReason (Enum)
131
132GuestPanicInformationS390 (Object)
133
134MEMORY_FAILURE (Event)
135
136MemoryFailureRecipient (Enum)
137
138MemoryFailureAction (Enum)
139
140MemoryFailureFlags (Object)
141
142Cryptography
143
144QCryptoTLSCredsEndpoint (Enum)
145
146QCryptoSecretFormat (Enum)
147
148QCryptoHashAlgorithm (Enum)
149
150QCryptoCipherAlgorithm (Enum)
151
152QCryptoCipherMode (Enum)
153
154QCryptoIVGenAlgorithm (Enum)
155
156QCryptoBlockFormat (Enum)
157
158QCryptoBlockOptionsBase (Object)
159
160QCryptoBlockOptionsQCow (Object)
161
162QCryptoBlockOptionsLUKS (Object)
163
164QCryptoBlockCreateOptionsLUKS (Object)
165
166QCryptoBlockOpenOptions (Object)
167
168QCryptoBlockCreateOptions (Object)
169
170QCryptoBlockInfoBase (Object)
171
172QCryptoBlockInfoLUKSSlot (Object)
173
174QCryptoBlockInfoLUKS (Object)
175
176QCryptoBlockInfo (Object)
177
178QCryptoBlockLUKSKeyslotState (Enum)
179
180QCryptoBlockAmendOptionsLUKS (Object)
181
182QCryptoBlockAmendOptions (Object)
183
184SecretCommonProperties (Object)
185
186SecretProperties (Object)
187
188SecretKeyringProperties (Object)
189
190TlsCredsProperties (Object)
191
192TlsCredsAnonProperties (Object)
193
194TlsCredsPskProperties (Object)
195
196TlsCredsX509Properties (Object)
197
198Block devices
199
200Block core (VM unrelated)
201
202Background jobs
203
204Additional block stuff (VM related)
205
206Block device exports
207
208Character devices
209
210ChardevInfo (Object)
211
212query-chardev (Command)
213
214ChardevBackendInfo (Object)
215
216query-chardev-backends (Command)
217
218DataFormat (Enum)
219
220ringbuf-write (Command)
221
222ringbuf-read (Command)
223
224ChardevCommon (Object)
225
226ChardevFile (Object)
227
228ChardevHostdev (Object)
229
230ChardevSocket (Object)
231
232ChardevUdp (Object)
233
234ChardevMux (Object)
235
236ChardevStdio (Object)
237
238ChardevSpiceChannel (Object)
239
240ChardevSpicePort (Object)
241
242ChardevVC (Object)
243
244ChardevRingbuf (Object)
245
246ChardevQemuVDAgent (Object)
247
248ChardevBackendKind (Enum)
249
250ChardevFileWrapper (Object)
251
252ChardevHostdevWrapper (Object)
253
254ChardevSocketWrapper (Object)
255
256ChardevUdpWrapper (Object)
257
258ChardevCommonWrapper (Object)
259
260ChardevMuxWrapper (Object)
261
262ChardevStdioWrapper (Object)
263
264ChardevSpiceChannelWrapper (Object)
265
266ChardevSpicePortWrapper (Object)
267
268ChardevQemuVDAgentWrapper (Object)
269
270ChardevVCWrapper (Object)
271
272ChardevRingbufWrapper (Object)
273
274ChardevBackend (Object)
275
276ChardevReturn (Object)
277
278chardev-add (Command)
279
280chardev-change (Command)
281
282chardev-remove (Command)
283
284chardev-send-break (Command)
285
286VSERPORT_CHANGE (Event)
287
288Dump guest memory
289
290DumpGuestMemoryFormat (Enum)
291
292dump-guest-memory (Command)
293
294DumpStatus (Enum)
295
296DumpQueryResult (Object)
297
298query-dump (Command)
299
300DUMP_COMPLETED (Event)
301
302DumpGuestMemoryCapability (Object)
303
304query-dump-guest-memory-capability (Command)
305
306Net devices
307
308set_link (Command)
309
310netdev_add (Command)
311
312netdev_del (Command)
313
314NetLegacyNicOptions (Object)
315
316NetdevUserOptions (Object)
317
318NetdevTapOptions (Object)
319
320NetdevSocketOptions (Object)
321
322NetdevL2TPv3Options (Object)
323
324NetdevVdeOptions (Object)
325
326NetdevBridgeOptions (Object)
327
328NetdevHubPortOptions (Object)
329
330NetdevNetmapOptions (Object)
331
332NetdevVhostUserOptions (Object)
333
334NetdevVhostVDPAOptions (Object)
335
336NetClientDriver (Enum)
337
338Netdev (Object)
339
340RxState (Enum)
341
342RxFilterInfo (Object)
343
344query-rx-filter (Command)
345
346NIC_RX_FILTER_CHANGED (Event)
347
348AnnounceParameters (Object)
349
350announce-self (Command)
351
352FAILOVER_NEGOTIATED (Event)
353
354RDMA device
355
356RDMA_GID_STATUS_CHANGED (Event)
357
358Rocker switch device
359
360RockerSwitch (Object)
361
362query-rocker (Command)
363
364RockerPortDuplex (Enum)
365
366RockerPortAutoneg (Enum)
367
368RockerPort (Object)
369
370query-rocker-ports (Command)
371
372RockerOfDpaFlowKey (Object)
373
374RockerOfDpaFlowMask (Object)
375
376RockerOfDpaFlowAction (Object)
377
378RockerOfDpaFlow (Object)
379
380query-rocker-of-dpa-flows (Command)
381
382RockerOfDpaGroup (Object)
383
384query-rocker-of-dpa-groups (Command)
385
386TPM (trusted platform module) devices
387
388TpmModel (Enum)
389
390query-tpm-models (Command)
391
392TpmType (Enum)
393
394query-tpm-types (Command)
395
396TPMPassthroughOptions (Object)
397
398TPMEmulatorOptions (Object)
399
400TPMPassthroughOptionsWrapper (Object)
401
402TPMEmulatorOptionsWrapper (Object)
403
404TpmTypeOptions (Object)
405
406TPMInfo (Object)
407
408query-tpm (Command)
409
410Remote desktop
411
412set_password (Command)
413
414expire_password (Command)
415
416screendump (Command)
417
418Spice
419
420VNC
421
422Input
423
424MouseInfo (Object)
425
426query-mice (Command)
427
428QKeyCode (Enum)
429
430KeyValueKind (Enum)
431
432IntWrapper (Object)
433
434QKeyCodeWrapper (Object)
435
436KeyValue (Object)
437
438send-key (Command)
439
440InputButton (Enum)
441
442InputAxis (Enum)
443
444InputKeyEvent (Object)
445
446InputBtnEvent (Object)
447
448InputMoveEvent (Object)
449
450InputEventKind (Enum)
451
452InputKeyEventWrapper (Object)
453
454InputBtnEventWrapper (Object)
455
456InputMoveEventWrapper (Object)
457
458InputEvent (Object)
459
460input-send-event (Command)
461
462DisplayGTK (Object)
463
464DisplayEGLHeadless (Object)
465
466DisplayGLMode (Enum)
467
468DisplayCurses (Object)
469
470DisplayType (Enum)
471
472DisplayOptions (Object)
473
474query-display-options (Command)
475
476DisplayReloadType (Enum)
477
478DisplayReloadOptionsVNC (Object)
479
480DisplayReloadOptions (Object)
481
482display-reload (Command)
483
484User authorization
485
486QAuthZListPolicy (Enum)
487
488QAuthZListFormat (Enum)
489
490QAuthZListRule (Object)
491
492AuthZListProperties (Object)
493
494AuthZListFileProperties (Object)
495
496AuthZPAMProperties (Object)
497
498AuthZSimpleProperties (Object)
499
500Migration
501
502MigrationStats (Object)
503
504XBZRLECacheStats (Object)
505
506CompressionStats (Object)
507
508MigrationStatus (Enum)
509
510VfioStats (Object)
511
512MigrationInfo (Object)
513
514query-migrate (Command)
515
516MigrationCapability (Enum)
517
518MigrationCapabilityStatus (Object)
519
520migrate-set-capabilities (Command)
521
522query-migrate-capabilities (Command)
523
524MultiFDCompression (Enum)
525
526BitmapMigrationBitmapAliasTransform (Object)
527
528BitmapMigrationBitmapAlias (Object)
529
530BitmapMigrationNodeAlias (Object)
531
532MigrationParameter (Enum)
533
534MigrateSetParameters (Object)
535
536migrate-set-parameters (Command)
537
538MigrationParameters (Object)
539
540query-migrate-parameters (Command)
541
542client_migrate_info (Command)
543
544migrate-start-postcopy (Command)
545
546MIGRATION (Event)
547
548MIGRATION_PASS (Event)
549
550COLOMessage (Enum)
551
552COLOMode (Enum)
553
554FailoverStatus (Enum)
555
556COLO_EXIT (Event)
557
558COLOExitReason (Enum)
559
560x-colo-lost-heartbeat (Command)
561
562migrate_cancel (Command)
563
564migrate-continue (Command)
565
566migrate (Command)
567
568migrate-incoming (Command)
569
570xen-save-devices-state (Command)
571
572xen-set-global-dirty-log (Command)
573
574xen-load-devices-state (Command)
575
576xen-set-replication (Command)
577
578ReplicationStatus (Object)
579
580query-xen-replication-status (Command)
581
582xen-colo-do-checkpoint (Command)
583
584COLOStatus (Object)
585
586query-colo-status (Command)
587
588migrate-recover (Command)
589
590migrate-pause (Command)
591
592UNPLUG_PRIMARY (Event)
593
594DirtyRateVcpu (Object)
595
596DirtyRateStatus (Enum)
597
598DirtyRateMeasureMode (Enum)
599
600DirtyRateInfo (Object)
601
602calc-dirty-rate (Command)
603
604query-dirty-rate (Command)
605
606snapshot-save (Command)
607
608snapshot-load (Command)
609
610snapshot-delete (Command)
611
612Transactions
613
614Abort (Object)
615
616ActionCompletionMode (Enum)
617
618TransactionActionKind (Enum)
619
620AbortWrapper (Object)
621
622BlockDirtyBitmapAddWrapper (Object)
623
624BlockDirtyBitmapWrapper (Object)
625
626BlockDirtyBitmapMergeWrapper (Object)
627
628BlockdevBackupWrapper (Object)
629
630BlockdevSnapshotWrapper (Object)
631
632BlockdevSnapshotInternalWrapper (Object)
633
634BlockdevSnapshotSyncWrapper (Object)
635
636DriveBackupWrapper (Object)
637
638TransactionAction (Object)
639
640TransactionProperties (Object)
641
642transaction (Command)
643
644Tracing
645
646TraceEventState (Enum)
647
648TraceEventInfo (Object)
649
650trace-event-get-state (Command)
651
652trace-event-set-state (Command)
653
654Compatibility policy
655
656CompatPolicyInput (Enum)
657
658CompatPolicyOutput (Enum)
659
660CompatPolicy (Object)
661
662QMP monitor control
663
664qmp_capabilities (Command)
665
666QMPCapability (Enum)
667
668VersionTriple (Object)
669
670VersionInfo (Object)
671
672query-version (Command)
673
674CommandInfo (Object)
675
676query-commands (Command)
677
678quit (Command)
679
680MonitorMode (Enum)
681
682MonitorOptions (Object)
683
684QMP introspection
685
686query-qmp-schema (Command)
687
688SchemaMetaType (Enum)
689
690SchemaInfo (Object)
691
692SchemaInfoBuiltin (Object)
693
694JSONType (Enum)
695
696SchemaInfoEnum (Object)
697
698SchemaInfoEnumMember (Object)
699
700SchemaInfoArray (Object)
701
702SchemaInfoObject (Object)
703
704SchemaInfoObjectMember (Object)
705
706SchemaInfoObjectVariant (Object)
707
708SchemaInfoAlternate (Object)
709
710SchemaInfoAlternateMember (Object)
711
712SchemaInfoCommand (Object)
713
714SchemaInfoEvent (Object)
715
716QEMU Object Model (QOM)
717
718ObjectPropertyInfo (Object)
719
720qom-list (Command)
721
722qom-get (Command)
723
724qom-set (Command)
725
726ObjectTypeInfo (Object)
727
728qom-list-types (Command)
729
730qom-list-properties (Command)
731
732CanHostSocketcanProperties (Object)
733
734ColoCompareProperties (Object)
735
736CryptodevBackendProperties (Object)
737
738CryptodevVhostUserProperties (Object)
739
740DBusVMStateProperties (Object)
741
742NetfilterInsert (Enum)
743
744NetfilterProperties (Object)
745
746FilterBufferProperties (Object)
747
748FilterDumpProperties (Object)
749
750FilterMirrorProperties (Object)
751
752FilterRedirectorProperties (Object)
753
754FilterRewriterProperties (Object)
755
756InputBarrierProperties (Object)
757
758InputLinuxProperties (Object)
759
760IothreadProperties (Object)
761
762MemoryBackendProperties (Object)
763
764MemoryBackendFileProperties (Object)
765
766MemoryBackendMemfdProperties (Object)
767
768MemoryBackendEpcProperties (Object)
769
770PrManagerHelperProperties (Object)
771
772QtestProperties (Object)
773
774RemoteObjectProperties (Object)
775
776RngProperties (Object)
777
778RngEgdProperties (Object)
779
780RngRandomProperties (Object)
781
782SevGuestProperties (Object)
783
784ObjectType (Enum)
785
786ObjectOptions (Object)
787
788object-add (Command)
789
790object-del (Command)
791
792Device infrastructure (qdev)
793
794device-list-properties (Command)
795
796device_add (Command)
797
798device_del (Command)
799
800DEVICE_DELETED (Event)
801
802DEVICE_UNPLUG_GUEST_ERROR (Event)
803
804Machines
805
806SysEmuTarget (Enum)
807
808CpuS390State (Enum)
809
810CpuInfoS390 (Object)
811
812CpuInfoFast (Object)
813
814query-cpus-fast (Command)
815
816MachineInfo (Object)
817
818query-machines (Command)
819
820CurrentMachineParams (Object)
821
822query-current-machine (Command)
823
824TargetInfo (Object)
825
826query-target (Command)
827
828UuidInfo (Object)
829
830query-uuid (Command)
831
832GuidInfo (Object)
833
834query-vm-generation-id (Command)
835
836system_reset (Command)
837
838system_powerdown (Command)
839
840system_wakeup (Command)
841
842LostTickPolicy (Enum)
843
844inject-nmi (Command)
845
846KvmInfo (Object)
847
848query-kvm (Command)
849
850NumaOptionsType (Enum)
851
852NumaOptions (Object)
853
854NumaNodeOptions (Object)
855
856NumaDistOptions (Object)
857
858X86CPURegister32 (Enum)
859
860X86CPUFeatureWordInfo (Object)
861
862DummyForceArrays (Object)
863
864NumaCpuOptions (Object)
865
866HmatLBMemoryHierarchy (Enum)
867
868HmatLBDataType (Enum)
869
870NumaHmatLBOptions (Object)
871
872HmatCacheAssociativity (Enum)
873
874HmatCacheWritePolicy (Enum)
875
876NumaHmatCacheOptions (Object)
877
878memsave (Command)
879
880pmemsave (Command)
881
882Memdev (Object)
883
884query-memdev (Command)
885
886CpuInstanceProperties (Object)
887
888HotpluggableCPU (Object)
889
890query-hotpluggable-cpus (Command)
891
892set-numa-node (Command)
893
894balloon (Command)
895
896BalloonInfo (Object)
897
898query-balloon (Command)
899
900BALLOON_CHANGE (Event)
901
902MemoryInfo (Object)
903
904query-memory-size-summary (Command)
905
906PCDIMMDeviceInfo (Object)
907
908VirtioPMEMDeviceInfo (Object)
909
910VirtioMEMDeviceInfo (Object)
911
912SgxEPCDeviceInfo (Object)
913
914MemoryDeviceInfoKind (Enum)
915
916PCDIMMDeviceInfoWrapper (Object)
917
918VirtioPMEMDeviceInfoWrapper (Object)
919
920VirtioMEMDeviceInfoWrapper (Object)
921
922SgxEPCDeviceInfoWrapper (Object)
923
924MemoryDeviceInfo (Object)
925
926SgxEPC (Object)
927
928SgxEPCProperties (Object)
929
930query-memory-devices (Command)
931
932MEMORY_DEVICE_SIZE_CHANGE (Event)
933
934MEM_UNPLUG_ERROR (Event)
935
936SMPConfiguration (Object)
937
938x-query-irq (Command)
939
940x-query-jit (Command)
941
942x-query-numa (Command)
943
944x-query-opcount (Command)
945
946x-query-profile (Command)
947
948x-query-ramblock (Command)
949
950x-query-rdma (Command)
951
952x-query-roms (Command)
953
954x-query-usb (Command)
955
956CpuModelInfo (Object)
957
958CpuModelExpansionType (Enum)
959
960CpuModelCompareResult (Enum)
961
962CpuModelBaselineInfo (Object)
963
964CpuModelCompareInfo (Object)
965
966query-cpu-model-comparison (Command)
967
968query-cpu-model-baseline (Command)
969
970CpuModelExpansionInfo (Object)
971
972query-cpu-model-expansion (Command)
973
974CpuDefinitionInfo (Object)
975
976query-cpu-definitions (Command)
977
978Record/replay
979
980ReplayMode (Enum)
981
982ReplayInfo (Object)
983
984query-replay (Command)
985
986replay-break (Command)
987
988replay-delete-break (Command)
989
990replay-seek (Command)
991
992Yank feature
993
994YankInstanceType (Enum)
995
996YankInstanceBlockNode (Object)
997
998YankInstanceChardev (Object)
999
1000YankInstance (Object)
1001
1002yank (Command)
1003
1004query-yank (Command)
1005
1006Miscellanea
1007
1008add_client (Command)
1009
1010NameInfo (Object)
1011
1012query-name (Command)
1013
1014IOThreadInfo (Object)
1015
1016query-iothreads (Command)
1017
1018stop (Command)
1019
1020cont (Command)
1021
1022x-exit-preconfig (Command)
1023
1024human-monitor-command (Command)
1025
1026getfd (Command)
1027
1028closefd (Command)
1029
1030AddfdInfo (Object)
1031
1032add-fd (Command)
1033
1034remove-fd (Command)
1035
1036FdsetFdInfo (Object)
1037
1038FdsetInfo (Object)
1039
1040query-fdsets (Command)
1041
1042CommandLineParameterType (Enum)
1043
1044CommandLineParameterInfo (Object)
1045
1046CommandLineOptionInfo (Object)
1047
1048query-command-line-options (Command)
1049
1050RTC_CHANGE (Event)
1051
1052rtc-reset-reinjection (Command)
1053
1054SevState (Enum)
1055
1056SevInfo (Object)
1057
1058query-sev (Command)
1059
1060SevLaunchMeasureInfo (Object)
1061
1062query-sev-launch-measure (Command)
1063
1064SevCapability (Object)
1065
1066query-sev-capabilities (Command)
1067
1068sev-inject-launch-secret (Command)
1069
1070SevAttestationReport (Object)
1071
1072query-sev-attestation-report (Command)
1073
1074dump-skeys (Command)
1075
1076GICCapability (Object)
1077
1078query-gic-capabilities (Command)
1079
1080SGXInfo (Object)
1081
1082query-sgx (Command)
1083
1084query-sgx-capabilities (Command)
1085
1086Audio
1087
1088AudiodevPerDirectionOptions (Object)
1089
1090AudiodevGenericOptions (Object)
1091
1092AudiodevAlsaPerDirectionOptions (Object)
1093
1094AudiodevAlsaOptions (Object)
1095
1096AudiodevCoreaudioPerDirectionOptions (Object)
1097
1098AudiodevCoreaudioOptions (Object)
1099
1100AudiodevDsoundOptions (Object)
1101
1102AudiodevJackPerDirectionOptions (Object)
1103
1104AudiodevJackOptions (Object)
1105
1106AudiodevOssPerDirectionOptions (Object)
1107
1108AudiodevOssOptions (Object)
1109
1110AudiodevPaPerDirectionOptions (Object)
1111
1112AudiodevPaOptions (Object)
1113
1114AudiodevSdlPerDirectionOptions (Object)
1115
1116AudiodevSdlOptions (Object)
1117
1118AudiodevWavOptions (Object)
1119
1120AudioFormat (Enum)
1121
1122AudiodevDriver (Enum)
1123
1124Audiodev (Object)
1125
1126ACPI
1127
1128AcpiTableOptions (Object)
1129
1130ACPISlotType (Enum)
1131
1132ACPIOSTInfo (Object)
1133
1134query-acpi-ospm-status (Command)
1135
1136ACPI_DEVICE_OST (Event)
1137
1138PCI
1139
1140PciMemoryRange (Object)
1141
1142PciMemoryRegion (Object)
1143
1144PciBusInfo (Object)
1145
1146PciBridgeInfo (Object)
1147
1148PciDeviceClass (Object)
1149
1150PciDeviceId (Object)
1151
1152PciDeviceInfo (Object)
1153
1154PciInfo (Object)
1155
1156query-pci (Command)
1157

INTRODUCTION

1159       This document describes all commands currently supported by QMP.
1160
1161       Most of the time their usage is exactly the same as in the  user  Moni‐
1162       tor,  this  means  that any other document which also describe commands
1163       (the manpage, QEMU's manual, etc) can and should be consulted.
1164
1165       QMP has two types of commands: regular and query commands. Regular com‐
1166       mands  usually  change the Virtual Machine's state someway, while query
1167       commands just return information. The sections below  are  divided  ac‐
1168       cordingly.
1169
1170       It's important to observe that all communication examples are formatted
1171       in a reader-friendly way, so that they're easier  to  understand.  How‐
1172       ever, in real protocol usage, they're emitted as a single line.
1173
1174       Also, the following notation is used to denote data flow:
1175
1176       Example:
1177
1178          -> data issued by the Client
1179          <- Server data response
1180
1181       Please,  refer to the QMP specification (docs/interop/qmp-spec.txt) for
1182       detailed information on the Server command and response formats.
1183

STABILITY CONSIDERATIONS

1185       The current QMP command set (described in this file) may be useful  for
1186       a  number  of use cases, however it's limited and several commands have
1187       bad defined semantics, specially with regard to command completion.
1188
1189       These problems are going to be solved incrementally in  the  next  QEMU
1190       releases  and  we're  going to establish a deprecation policy for badly
1191       defined commands.
1192
1193       If you're planning to adopt QMP, please observe the following:
1194
1195          1. The deprecation policy will take effect and be  documented  soon,
1196             please  check the documentation of each used command as soon as a
1197             new release of QEMU is available
1198
1199          2. DO NOT rely on anything which is not explicit documented
1200
1201          3. Errors, in special, are not documented. Applications  should  NOT
1202             check  for  specific errors classes or data (it's strongly recom‐
1203             mended to only check for the "error" key)
1204

QMP ERRORS

1206   QapiErrorClass (Enum)
1207       QEMU error classes
1208
1209   Values
1210       GenericError
1211              this is used for errors that  don't  require  a  specific  error
1212              class. This should be the default case for most errors
1213
1214       CommandNotFound
1215              the requested command has not been found
1216
1217       DeviceNotActive
1218              a device has failed to be become active
1219
1220       DeviceNotFound
1221              the requested device has not been found
1222
1223       KVMMissingCap
1224              the  requested  operation  can't be fulfilled because a required
1225              KVM capability is missing
1226
1227   Since
1228       1.2
1229

COMMON DATA TYPES

1231   IoOperationType (Enum)
1232       An enumeration of the I/O operation types
1233
1234   Values
1235       read   read operation
1236
1237       write  write operation
1238
1239   Since
1240       2.1
1241
1242   OnOffAuto (Enum)
1243       An enumeration of three options: on, off, and auto
1244
1245   Values
1246       auto   QEMU selects the value between on and off
1247
1248       on     Enabled
1249
1250       off    Disabled
1251
1252   Since
1253       2.2
1254
1255   OnOffSplit (Enum)
1256       An enumeration of three values: on, off, and split
1257
1258   Values
1259       on     Enabled
1260
1261       off    Disabled
1262
1263       split  Mixed
1264
1265   Since
1266       2.6
1267
1268   String (Object)
1269       A fat type wrapping 'str', to be embedded in lists.
1270
1271   Members
1272       str: string
1273              Not documented
1274
1275   Since
1276       1.2
1277
1278   StrOrNull (Alternate)
1279       This is a string value or the explicit lack of a string  (null  pointer
1280       in C).  Intended for cases when 'optional absent' already has a differ‐
1281       ent meaning.
1282
1283   Members
1284       s: string
1285              the string value
1286
1287       n: null
1288              no string value
1289
1290   Since
1291       2.10
1292
1293   OffAutoPCIBAR (Enum)
1294       An enumeration of options for specifying a PCI BAR
1295
1296   Values
1297       off    The specified feature is disabled
1298
1299       auto   The PCI BAR for the feature is automatically selected
1300
1301       bar0   PCI BAR0 is used for the feature
1302
1303       bar1   PCI BAR1 is used for the feature
1304
1305       bar2   PCI BAR2 is used for the feature
1306
1307       bar3   PCI BAR3 is used for the feature
1308
1309       bar4   PCI BAR4 is used for the feature
1310
1311       bar5   PCI BAR5 is used for the feature
1312
1313   Since
1314       2.12
1315
1316   PCIELinkSpeed (Enum)
1317       An enumeration of PCIe link speeds in units of GT/s
1318
1319   Values
1320       2_5    2.5GT/s
1321
1322       5      5.0GT/s
1323
1324       8      8.0GT/s
1325
1326       16     16.0GT/s
1327
1328   Since
1329       4.0
1330
1331   PCIELinkWidth (Enum)
1332       An enumeration of PCIe link width
1333
1334   Values
1335       1      x1
1336
1337       2      x2
1338
1339       4      x4
1340
1341       8      x8
1342
1343       12     x12
1344
1345       16     x16
1346
1347       32     x32
1348
1349   Since
1350       4.0
1351
1352   HostMemPolicy (Enum)
1353       Host memory policy types
1354
1355   Values
1356       default
1357              restore default policy, remove any nondefault policy
1358
1359       preferred
1360              set the preferred host nodes for allocation
1361
1362       bind   a strict policy that restricts memory  allocation  to  the  host
1363              nodes specified
1364
1365       interleave
1366              memory  allocations are interleaved across the set of host nodes
1367              specified
1368
1369   Since
1370       2.1
1371
1372   NetFilterDirection (Enum)
1373       Indicates whether a netfilter is attached to a netdev's transmit  queue
1374       or receive queue or both.
1375
1376   Values
1377       all    the  filter  is  attached  both  to the receive and the transmit
1378              queue of the netdev (default).
1379
1380       rx     the filter is attached to the receive queue of the netdev, where
1381              it will receive packets sent to the netdev.
1382
1383       tx     the  filter  is  attached  to  the transmit queue of the netdev,
1384              where it will receive packets sent by the netdev.
1385
1386   Since
1387       2.5
1388
1389   GrabToggleKeys (Enum)
1390       Keys to toggle input-linux between host and guest.
1391
1392   Values
1393       ctrl-ctrl
1394              Not documented
1395
1396       alt-alt
1397              Not documented
1398
1399       shift-shift
1400              Not documented
1401
1402       meta-meta
1403              Not documented
1404
1405       scrolllock
1406              Not documented
1407
1408       ctrl-scrolllock
1409              Not documented
1410
1411   Since
1412       4.0
1413
1414   HumanReadableText (Object)
1415   Members
1416       human-readable-text: string
1417              Formatted output intended for humans.
1418
1419   Since
1420       6.2
1421

SOCKET DATA TYPES

1423   NetworkAddressFamily (Enum)
1424       The network address family
1425
1426   Values
1427       ipv4   IPV4 family
1428
1429       ipv6   IPV6 family
1430
1431       unix   unix socket
1432
1433       vsock  vsock family (since 2.8)
1434
1435       unknown
1436              otherwise
1437
1438   Since
1439       2.1
1440
1441   InetSocketAddressBase (Object)
1442   Members
1443       host: string
1444              host part of the address
1445
1446       port: string
1447              port part of the address
1448
1449   InetSocketAddress (Object)
1450       Captures a socket address or address range in the Internet namespace.
1451
1452   Members
1453       numeric: boolean (optional)
1454              true if the host/port are guaranteed to  be  numeric,  false  if
1455              name  resolution should be attempted. Defaults to false.  (Since
1456              2.9)
1457
1458       to: int (optional)
1459              If present, this is range of possible addresses, with  port  be‐
1460              tween port and to.
1461
1462       ipv4: boolean (optional)
1463              whether to accept IPv4 addresses, default try both IPv4 and IPv6
1464
1465       ipv6: boolean (optional)
1466              whether to accept IPv6 addresses, default try both IPv4 and IPv6
1467
1468       keep-alive: boolean (optional)
1469              enable  keep-alive when connecting to this socket. Not supported
1470              for passive sockets. (Since 4.2)
1471
1472       mptcp: boolean (optional) (If: HAVE_IPPROTO_MPTCP)
1473              enable multi-path TCP. (Since 6.1)
1474
1475       The members of InetSocketAddressBase
1476
1477   Since
1478       1.3
1479
1480   UnixSocketAddress (Object)
1481       Captures a socket address in the local ("Unix socket") namespace.
1482
1483   Members
1484       path: string
1485              filesystem path to use
1486
1487       abstract: boolean (optional) (If: CONFIG_LINUX)
1488              if true, this is a Linux abstract socket address.  path will  be
1489              prefixed  by a null byte, and optionally padded with null bytes.
1490              Defaults to false.  (Since 5.1)
1491
1492       tight: boolean (optional) (If: CONFIG_LINUX)
1493              if false, pad an abstract socket address with enough null  bytes
1494              to make it fill struct sockaddr_un member sun_path.  Defaults to
1495              true.  (Since 5.1)
1496
1497   Since
1498       1.3
1499
1500   VsockSocketAddress (Object)
1501       Captures a socket address in the vsock namespace.
1502
1503   Members
1504       cid: string
1505              unique host identifier
1506
1507       port: string
1508              port
1509
1510   Note
1511       string types are used to allow for possible future hostname or  service
1512       resolution support.
1513
1514   Since
1515       2.8
1516
1517   InetSocketAddressWrapper (Object)
1518   Members
1519       data: InetSocketAddress
1520              Not documented
1521
1522   Since
1523       1.3
1524
1525   UnixSocketAddressWrapper (Object)
1526   Members
1527       data: UnixSocketAddress
1528              Not documented
1529
1530   Since
1531       1.3
1532
1533   VsockSocketAddressWrapper (Object)
1534   Members
1535       data: VsockSocketAddress
1536              Not documented
1537
1538   Since
1539       2.8
1540
1541   StringWrapper (Object)
1542   Members
1543       data: String
1544              Not documented
1545
1546   Since
1547       1.3
1548
1549   SocketAddressLegacy (Object)
1550       Captures  the address of a socket, which could also be a named file de‐
1551       scriptor
1552
1553   Members
1554       type: SocketAddressType
1555              Not documented
1556
1557       The members of InetSocketAddressWrapper when type is "inet"
1558
1559       The members of UnixSocketAddressWrapper when type is "unix"
1560
1561       The members of VsockSocketAddressWrapper when type is "vsock"
1562
1563       The members of StringWrapper when type is "fd"
1564
1565   Note
1566       This type is deprecated in favor of SocketAddress.  The difference  be‐
1567       tween  SocketAddressLegacy  and SocketAddress is that the latter is has
1568       fewer {} on the wire.
1569
1570   Since
1571       1.3
1572
1573   SocketAddressType (Enum)
1574       Available SocketAddress types
1575
1576   Values
1577       inet   Internet address
1578
1579       unix   Unix domain socket
1580
1581       vsock  VMCI address
1582
1583       fd     decimal is for file descriptor number, otherwise a file descrip‐
1584              tor  name.  Named file descriptors are permitted in monitor com‐
1585              mands, in combination with the 'getfd' command. Decimal file de‐
1586              scriptors  are  permitted  at startup or other contexts where no
1587              monitor context is active.
1588
1589   Since
1590       2.9
1591
1592   SocketAddress (Object)
1593       Captures the address of a socket, which could also be a named file  de‐
1594       scriptor
1595
1596   Members
1597       type: SocketAddressType
1598              Transport type
1599
1600       The members of InetSocketAddress when type is "inet"
1601
1602       The members of UnixSocketAddress when type is "unix"
1603
1604       The members of VsockSocketAddress when type is "vsock"
1605
1606       The members of String when type is "fd"
1607
1608   Since
1609       2.9
1610

VM RUN STATE

1612   RunState (Enum)
1613       An enumeration of VM run states.
1614
1615   Values
1616       debug  QEMU is running on a debugger
1617
1618       finish-migrate
1619              guest is paused to finish the migration process
1620
1621       inmigrate
1622              guest  is  paused  waiting for an incoming migration.  Note that
1623              this state does not tell whether the machine will start  at  the
1624              end  of  the migration.  This depends on the command-line -S op‐
1625              tion and any invocation of 'stop' or 'cont'  that  has  happened
1626              since QEMU was started.
1627
1628       internal-error
1629              An  internal error that prevents further guest execution has oc‐
1630              curred
1631
1632       io-error
1633              the last IOP has failed and the device is configured to pause on
1634              I/O errors
1635
1636       paused guest has been paused via the 'stop' command
1637
1638       postmigrate
1639              guest is paused following a successful 'migrate'
1640
1641       prelaunch
1642              QEMU was started with -S and guest has not started
1643
1644       restore-vm
1645              guest is paused to restore VM state
1646
1647       running
1648              guest is actively running
1649
1650       save-vm
1651              guest is paused to save the VM state
1652
1653       shutdown
1654              guest is shut down (and -no-shutdown is in use)
1655
1656       suspended
1657              guest is suspended (ACPI S3)
1658
1659       watchdog
1660              the  watchdog  action  is configured to pause and has been trig‐
1661              gered
1662
1663       guest-panicked
1664              guest has been panicked as a result of guest OS panic
1665
1666       colo   guest is paused to save/restore VM state under colo  checkpoint,
1667              VM can not get into this state unless colo capability is enabled
1668              for migration. (since 2.8)
1669
1670   ShutdownCause (Enum)
1671       An enumeration of reasons for a Shutdown.
1672
1673   Values
1674       none   No shutdown request pending
1675
1676       host-error
1677              An error prevents further use of guest
1678
1679       host-qmp-quit
1680              Reaction to the QMP command 'quit'
1681
1682       host-qmp-system-reset
1683              Reaction to the QMP command 'system_reset'
1684
1685       host-signal
1686              Reaction to a signal, such as SIGINT
1687
1688       host-ui
1689              Reaction to a UI event, like window close
1690
1691       guest-shutdown
1692              Guest shutdown/suspend request, via ACPI or other  hardware-spe‐
1693              cific means
1694
1695       guest-reset
1696              Guest reset request, and command line turns that into a shutdown
1697
1698       guest-panic
1699              Guest panicked, and command line turns that into a shutdown
1700
1701       subsystem-reset
1702              Partial guest reset that does not trigger QMP events and ignores
1703              --no-reboot. This is useful for sanitizing  hypercalls  on  s390
1704              that are used during kexec/kdump/boot
1705
1706   StatusInfo (Object)
1707       Information about VCPU run state
1708
1709   Members
1710       running: boolean
1711              true if all VCPUs are runnable, false if not runnable
1712
1713       singlestep: boolean
1714              true if VCPUs are in single-step mode
1715
1716       status: RunState
1717              the virtual machine RunState
1718
1719   Since
1720       0.14
1721
1722   Notes
1723       singlestep is enabled through the GDB stub
1724
1725   query-status (Command)
1726       Query the run status of all VCPUs
1727
1728   Returns
1729       StatusInfo reflecting all VCPUs
1730
1731   Since
1732       0.14
1733
1734   Example
1735          -> { "execute": "query-status" }
1736          <- { "return": { "running": true,
1737                           "singlestep": false,
1738                           "status": "running" } }
1739
1740   SHUTDOWN (Event)
1741       Emitted when the virtual machine has shut down, indicating that qemu is
1742       about to exit.
1743
1744   Arguments
1745       guest: boolean
1746              If true, the shutdown was triggered by a guest request (such  as
1747              a  guest-initiated  ACPI shutdown request or other hardware-spe‐
1748              cific action) rather than a host request (such as sending qemu a
1749              SIGINT). (since 2.10)
1750
1751       reason: ShutdownCause
1752              The ShutdownCause which resulted in the SHUTDOWN. (since 4.0)
1753
1754   Note
1755       If the command-line option "-no-shutdown" has been specified, qemu will
1756       not exit, and a STOP event will eventually follow the SHUTDOWN event
1757
1758   Since
1759       0.12
1760
1761   Example
1762          <- { "event": "SHUTDOWN", "data": { "guest": true },
1763               "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
1764
1765   POWERDOWN (Event)
1766       Emitted when the virtual machine is powered down through the power con‐
1767       trol system, such as via ACPI.
1768
1769   Since
1770       0.12
1771
1772   Example
1773          <- { "event": "POWERDOWN",
1774               "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
1775
1776   RESET (Event)
1777       Emitted when the virtual machine is reset
1778
1779   Arguments
1780       guest: boolean
1781              If  true,  the reset was triggered by a guest request (such as a
1782              guest-initiated ACPI reboot request or  other  hardware-specific
1783              action) rather than a host request (such as the QMP command sys‐
1784              tem_reset).  (since 2.10)
1785
1786       reason: ShutdownCause
1787              The ShutdownCause of the RESET. (since 4.0)
1788
1789   Since
1790       0.12
1791
1792   Example
1793          <- { "event": "RESET", "data": { "guest": false },
1794               "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
1795
1796   STOP (Event)
1797       Emitted when the virtual machine is stopped
1798
1799   Since
1800       0.12
1801
1802   Example
1803          <- { "event": "STOP",
1804               "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
1805
1806   RESUME (Event)
1807       Emitted when the virtual machine resumes execution
1808
1809   Since
1810       0.12
1811
1812   Example
1813          <- { "event": "RESUME",
1814               "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
1815
1816   SUSPEND (Event)
1817       Emitted when guest enters a hardware suspension state, for example,  S3
1818       state, which is sometimes called standby state
1819
1820   Since
1821       1.1
1822
1823   Example
1824          <- { "event": "SUSPEND",
1825               "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
1826
1827   SUSPEND_DISK (Event)
1828       Emitted  when  guest enters a hardware suspension state with data saved
1829       on disk, for example, S4 state, which  is  sometimes  called  hibernate
1830       state
1831
1832   Note
1833       QEMU shuts down (similar to event SHUTDOWN) when entering this state
1834
1835   Since
1836       1.2
1837
1838   Example
1839          <-   { "event": "SUSPEND_DISK",
1840                 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
1841
1842   WAKEUP (Event)
1843       Emitted when the guest has woken up from suspend state and is running
1844
1845   Since
1846       1.1
1847
1848   Example
1849          <- { "event": "WAKEUP",
1850               "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
1851
1852   WATCHDOG (Event)
1853       Emitted when the watchdog device's timer is expired
1854
1855   Arguments
1856       action: WatchdogAction
1857              action that has been taken
1858
1859   Note
1860       If action is "reset", "shutdown", or "pause" the WATCHDOG event is fol‐
1861       lowed respectively by the RESET, SHUTDOWN, or STOP events
1862
1863   Note
1864       This event is rate-limited.
1865
1866   Since
1867       0.13
1868
1869   Example
1870          <- { "event": "WATCHDOG",
1871               "data": { "action": "reset" },
1872               "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
1873
1874   WatchdogAction (Enum)
1875       An enumeration of the actions taken when the watchdog device's timer is
1876       expired
1877
1878   Values
1879       reset  system resets
1880
1881       shutdown
1882              system  shutdown,  note  that  it is similar to powerdown, which
1883              tries to set to system status and notify guest
1884
1885       poweroff
1886              system poweroff, the emulator program exits
1887
1888       pause  system pauses, similar to stop
1889
1890       debug  system enters debug state
1891
1892       none   nothing is done
1893
1894       inject-nmi
1895              a non-maskable interrupt is injected into the  first  VCPU  (all
1896              VCPUS on x86) (since 2.4)
1897
1898   Since
1899       2.1
1900
1901   RebootAction (Enum)
1902       Possible QEMU actions upon guest reboot
1903
1904   Values
1905       reset  Reset the VM
1906
1907       shutdown
1908              Shutdown the VM and exit, according to the shutdown action
1909
1910   Since
1911       6.0
1912
1913   ShutdownAction (Enum)
1914       Possible QEMU actions upon guest shutdown
1915
1916   Values
1917       poweroff
1918              Shutdown the VM and exit
1919
1920       pause  pause the VM#
1921
1922   Since
1923       6.0
1924
1925   PanicAction (Enum)
1926   Values
1927       none   Continue VM execution
1928
1929       pause  Pause the VM
1930
1931       shutdown
1932              Shutdown the VM and exit, according to the shutdown action
1933
1934   Since
1935       6.0
1936
1937   watchdog-set-action (Command)
1938       Set watchdog action
1939
1940   Arguments
1941       action: WatchdogAction
1942              Not documented
1943
1944   Since
1945       2.11
1946
1947   set-action (Command)
1948       Set the actions that will be taken by the emulator in response to guest
1949       events.
1950
1951   Arguments
1952       reboot: RebootAction (optional)
1953              RebootAction action taken on guest reboot.
1954
1955       shutdown: ShutdownAction (optional)
1956              ShutdownAction action taken on guest shutdown.
1957
1958       panic: PanicAction (optional)
1959              PanicAction action taken on guest panic.
1960
1961       watchdog: WatchdogAction (optional)
1962              WatchdogAction action taken when watchdog timer expires .
1963
1964   Returns
1965       Nothing on success.
1966
1967   Since
1968       6.0
1969
1970   Example
1971          -> { "execute": "set-action",
1972               "arguments": { "reboot": "shutdown",
1973                              "shutdown" : "pause",
1974                              "panic": "pause",
1975                              "watchdog": "inject-nmi" } }
1976          <- { "return": {} }
1977
1978   GUEST_PANICKED (Event)
1979       Emitted when guest OS panic is detected
1980
1981   Arguments
1982       action: GuestPanicAction
1983              action that has been taken, currently always "pause"
1984
1985       info: GuestPanicInformation (optional)
1986              information about a panic (since 2.9)
1987
1988   Since
1989       1.5
1990
1991   Example
1992          <- { "event": "GUEST_PANICKED",
1993               "data": { "action": "pause" } }
1994
1995   GUEST_CRASHLOADED (Event)
1996       Emitted when guest OS crash loaded is detected
1997
1998   Arguments
1999       action: GuestPanicAction
2000              action that has been taken, currently always "run"
2001
2002       info: GuestPanicInformation (optional)
2003              information about a panic
2004
2005   Since
2006       5.0
2007
2008   Example
2009          <- { "event": "GUEST_CRASHLOADED",
2010               "data": { "action": "run" } }
2011
2012   GuestPanicAction (Enum)
2013       An enumeration of the actions taken when guest OS panic is detected
2014
2015   Values
2016       pause  system pauses
2017
2018       poweroff
2019              Not documented
2020
2021       run    Not documented
2022
2023   Since
2024       2.1 (poweroff since 2.8, run since 5.0)
2025
2026   GuestPanicInformationType (Enum)
2027       An enumeration of the guest panic information types
2028
2029   Values
2030       hyper-v
2031              hyper-v guest panic information type
2032
2033       s390   s390 guest panic information type (Since: 2.12)
2034
2035   Since
2036       2.9
2037
2038   GuestPanicInformation (Object)
2039       Information about a guest panic
2040
2041   Members
2042       type: GuestPanicInformationType
2043              Crash type that defines the hypervisor specific information
2044
2045       The members of GuestPanicInformationHyperV when type is "hyper-v"
2046
2047       The members of GuestPanicInformationS390 when type is "s390"
2048
2049   Since
2050       2.9
2051
2052   GuestPanicInformationHyperV (Object)
2053       Hyper-V specific guest panic information (HV crash MSRs)
2054
2055   Members
2056       arg1: int
2057              Not documented
2058
2059       arg2: int
2060              Not documented
2061
2062       arg3: int
2063              Not documented
2064
2065       arg4: int
2066              Not documented
2067
2068       arg5: int
2069              Not documented
2070
2071   Since
2072       2.9
2073
2074   S390CrashReason (Enum)
2075       Reason why the CPU is in a crashed state.
2076
2077   Values
2078       unknown
2079              no crash reason was set
2080
2081       disabled-wait
2082              the CPU has entered a disabled wait state
2083
2084       extint-loop
2085              clock comparator or cpu timer interrupt with new PSW enabled for
2086              external interrupts
2087
2088       pgmint-loop
2089              program interrupt with BAD new PSW
2090
2091       opint-loop
2092              operation  exception  interrupt with invalid code at the program
2093              interrupt new PSW
2094
2095   Since
2096       2.12
2097
2098   GuestPanicInformationS390 (Object)
2099       S390 specific guest panic information (PSW)
2100
2101   Members
2102       core: int
2103              core id of the CPU that crashed
2104
2105       psw-mask: int
2106              control fields of guest PSW
2107
2108       psw-addr: int
2109              guest instruction address
2110
2111       reason: S390CrashReason
2112              guest crash reason
2113
2114   Since
2115       2.12
2116
2117   MEMORY_FAILURE (Event)
2118       Emitted when a memory failure occurs on host side.
2119
2120   Arguments
2121       recipient: MemoryFailureRecipient
2122              recipient is defined as MemoryFailureRecipient.
2123
2124       action: MemoryFailureAction
2125              action that has been taken. action is defined as  MemoryFailure‐
2126              Action.
2127
2128       flags: MemoryFailureFlags
2129              flags  for MemoryFailureAction. action is defined as MemoryFail‐
2130              ureFlags.
2131
2132   Since
2133       5.2
2134
2135   Example
2136          <- { "event": "MEMORY_FAILURE",
2137               "data": { "recipient": "hypervisor",
2138                         "action": "fatal",
2139                         "flags": { 'action-required': false } }
2140
2141   MemoryFailureRecipient (Enum)
2142       Hardware memory failure occurs, handled by recipient.
2143
2144   Values
2145       hypervisor
2146              memory failure at QEMU process address space.  (none guest  mem‐
2147              ory, but used by QEMU itself).
2148
2149       guest  memory failure at guest memory,
2150
2151   Since
2152       5.2
2153
2154   MemoryFailureAction (Enum)
2155       Actions taken by QEMU in response to a hardware memory failure.
2156
2157   Values
2158       ignore the memory failure could be ignored.  This will only be the case
2159              for action-optional failures.
2160
2161       inject memory failure occurred in guest memory, the guest  enabled  MCE
2162              handling mechanism, and QEMU could inject the MCE into the guest
2163              successfully.
2164
2165       fatal  the failure is unrecoverable.  This occurs  for  action-required
2166              failures if the recipient is the hypervisor; QEMU will exit.
2167
2168       reset  the  failure  is  unrecoverable but confined to the guest.  This
2169              occurs if the recipient is a guest guest which is not  ready  to
2170              handle memory failures.
2171
2172   Since
2173       5.2
2174
2175   MemoryFailureFlags (Object)
2176       Additional information on memory failures.
2177
2178   Members
2179       action-required: boolean
2180              whether  a memory failure event is action-required or action-op‐
2181              tional (e.g. a failure during memory scrub).
2182
2183       recursive: boolean
2184              whether the failure occurred  while  the  previous  failure  was
2185              still in progress.
2186
2187   Since
2188       5.2
2189

CRYPTOGRAPHY

2191   QCryptoTLSCredsEndpoint (Enum)
2192       The  type of network endpoint that will be using the credentials.  Most
2193       types of credential require different setup / structures  depending  on
2194       whether they will be used in a server versus a client.
2195
2196   Values
2197       client the network endpoint is acting as the client
2198
2199       server the network endpoint is acting as the server
2200
2201   Since
2202       2.5
2203
2204   QCryptoSecretFormat (Enum)
2205       The data format that the secret is provided in
2206
2207   Values
2208       raw    raw  bytes.  When encoded in JSON only valid UTF-8 sequences can
2209              be used
2210
2211       base64 arbitrary base64 encoded binary data
2212
2213   Since
2214       2.6
2215
2216   QCryptoHashAlgorithm (Enum)
2217       The supported algorithms for computing content digests
2218
2219   Values
2220       md5    MD5. Should not be used in any new code, legacy compat only
2221
2222       sha1   SHA-1. Should not be used in any new code, legacy compat only
2223
2224       sha224 SHA-224. (since 2.7)
2225
2226       sha256 SHA-256. Current recommended strong hash.
2227
2228       sha384 SHA-384. (since 2.7)
2229
2230       sha512 SHA-512. (since 2.7)
2231
2232       ripemd160
2233              RIPEMD-160. (since 2.7)
2234
2235   Since
2236       2.6
2237
2238   QCryptoCipherAlgorithm (Enum)
2239       The supported algorithms for content encryption ciphers
2240
2241   Values
2242       aes-128
2243              AES with 128 bit / 16 byte keys
2244
2245       aes-192
2246              AES with 192 bit / 24 byte keys
2247
2248       aes-256
2249              AES with 256 bit / 32 byte keys
2250
2251       des    DES with 56 bit / 8 byte keys. Do not use except in VNC.  (since
2252              6.1)
2253
2254       3des   3DES(EDE) with 192 bit / 24 byte keys (since 2.9)
2255
2256       cast5-128
2257              Cast5 with 128 bit / 16 byte keys
2258
2259       serpent-128
2260              Serpent with 128 bit / 16 byte keys
2261
2262       serpent-192
2263              Serpent with 192 bit / 24 byte keys
2264
2265       serpent-256
2266              Serpent with 256 bit / 32 byte keys
2267
2268       twofish-128
2269              Twofish with 128 bit / 16 byte keys
2270
2271       twofish-192
2272              Twofish with 192 bit / 24 byte keys
2273
2274       twofish-256
2275              Twofish with 256 bit / 32 byte keys
2276
2277   Since
2278       2.6
2279
2280   QCryptoCipherMode (Enum)
2281       The supported modes for content encryption ciphers
2282
2283   Values
2284       ecb    Electronic Code Book
2285
2286       cbc    Cipher Block Chaining
2287
2288       xts    XEX with tweaked code book and ciphertext stealing
2289
2290       ctr    Counter (Since 2.8)
2291
2292   Since
2293       2.6
2294
2295   QCryptoIVGenAlgorithm (Enum)
2296       The supported algorithms for generating initialization vectors for full
2297       disk encryption. The 'plain' generator should not  be  used  for  disks
2298       with  sector  numbers larger than 2^32, except where compatibility with
2299       pre-existing Linux dm-crypt volumes is required.
2300
2301   Values
2302       plain  64-bit sector number truncated to 32-bits
2303
2304       plain64
2305              64-bit sector number
2306
2307       essiv  64-bit sector number encrypted with a hash of the encryption key
2308
2309   Since
2310       2.6
2311
2312   QCryptoBlockFormat (Enum)
2313       The supported full disk encryption formats
2314
2315   Values
2316       qcow   QCow/QCow2 built-in AES-CBC encryption. Use only for  liberating
2317              data from old images.
2318
2319       luks   LUKS encryption format. Recommended for new images
2320
2321   Since
2322       2.6
2323
2324   QCryptoBlockOptionsBase (Object)
2325       The common options that apply to all full disk encryption formats
2326
2327   Members
2328       format: QCryptoBlockFormat
2329              the encryption format
2330
2331   Since
2332       2.6
2333
2334   QCryptoBlockOptionsQCow (Object)
2335       The options that apply to QCow/QCow2 AES-CBC encryption format
2336
2337   Members
2338       key-secret: string (optional)
2339              the  ID  of a QCryptoSecret object providing the decryption key.
2340              Mandatory except when probing image for metadata only.
2341
2342   Since
2343       2.6
2344
2345   QCryptoBlockOptionsLUKS (Object)
2346       The options that apply to LUKS encryption format
2347
2348   Members
2349       key-secret: string (optional)
2350              the ID of a QCryptoSecret object providing the  decryption  key.
2351              Mandatory except when probing image for metadata only.
2352
2353   Since
2354       2.6
2355
2356   QCryptoBlockCreateOptionsLUKS (Object)
2357       The options that apply to LUKS encryption format initialization
2358
2359   Members
2360       cipher-alg: QCryptoCipherAlgorithm (optional)
2361              the  cipher  algorithm for data encryption Currently defaults to
2362              'aes-256'.
2363
2364       cipher-mode: QCryptoCipherMode (optional)
2365              the cipher mode for data encryption Currently defaults to 'xts'
2366
2367       ivgen-alg: QCryptoIVGenAlgorithm (optional)
2368              the  initialization  vector  generator  Currently  defaults   to
2369              'plain64'
2370
2371       ivgen-hash-alg: QCryptoHashAlgorithm (optional)
2372              the  initialization  vector generator hash Currently defaults to
2373              'sha256'
2374
2375       hash-alg: QCryptoHashAlgorithm (optional)
2376              the master key hash algorithm Currently defaults to 'sha256'
2377
2378       iter-time: int (optional)
2379              number of milliseconds to spend in PBKDF passphrase  processing.
2380              Currently defaults to 2000. (since 2.8)
2381
2382       The members of QCryptoBlockOptionsLUKS
2383
2384   Since
2385       2.6
2386
2387   QCryptoBlockOpenOptions (Object)
2388       The  options that are available for all encryption formats when opening
2389       an existing volume
2390
2391   Members
2392       The members of QCryptoBlockOptionsBase
2393
2394       The members of QCryptoBlockOptionsQCow when format is "qcow"
2395
2396       The members of QCryptoBlockOptionsLUKS when format is "luks"
2397
2398   Since
2399       2.6
2400
2401   QCryptoBlockCreateOptions (Object)
2402       The options that are available for all encryption formats when initial‐
2403       izing a new volume
2404
2405   Members
2406       The members of QCryptoBlockOptionsBase
2407
2408       The members of QCryptoBlockOptionsQCow when format is "qcow"
2409
2410       The members of QCryptoBlockCreateOptionsLUKS when format is "luks"
2411
2412   Since
2413       2.6
2414
2415   QCryptoBlockInfoBase (Object)
2416       The common information that applies to all full disk encryption formats
2417
2418   Members
2419       format: QCryptoBlockFormat
2420              the encryption format
2421
2422   Since
2423       2.7
2424
2425   QCryptoBlockInfoLUKSSlot (Object)
2426       Information about the LUKS block encryption key slot options
2427
2428   Members
2429       active: boolean
2430              whether the key slot is currently in use
2431
2432       key-offset: int
2433              offset to the key material in bytes
2434
2435       iters: int (optional)
2436              number of PBKDF2 iterations for key material
2437
2438       stripes: int (optional)
2439              number of stripes for splitting key material
2440
2441   Since
2442       2.7
2443
2444   QCryptoBlockInfoLUKS (Object)
2445       Information about the LUKS block encryption options
2446
2447   Members
2448       cipher-alg: QCryptoCipherAlgorithm
2449              the cipher algorithm for data encryption
2450
2451       cipher-mode: QCryptoCipherMode
2452              the cipher mode for data encryption
2453
2454       ivgen-alg: QCryptoIVGenAlgorithm
2455              the initialization vector generator
2456
2457       ivgen-hash-alg: QCryptoHashAlgorithm (optional)
2458              the initialization vector generator hash
2459
2460       hash-alg: QCryptoHashAlgorithm
2461              the master key hash algorithm
2462
2463       payload-offset: int
2464              offset to the payload data in bytes
2465
2466       master-key-iters: int
2467              number of PBKDF2 iterations for key material
2468
2469       uuid: string
2470              unique identifier for the volume
2471
2472       slots: array of QCryptoBlockInfoLUKSSlot
2473              information about each key slot
2474
2475   Since
2476       2.7
2477
2478   QCryptoBlockInfo (Object)
2479       Information about the block encryption options
2480
2481   Members
2482       The members of QCryptoBlockInfoBase
2483
2484       The members of QCryptoBlockInfoLUKS when format is "luks"
2485
2486   Since
2487       2.7
2488
2489   QCryptoBlockLUKSKeyslotState (Enum)
2490       Defines state of keyslots that are affected by the update
2491
2492   Values
2493       active The slots contain the given password and marked as active
2494
2495       inactive
2496              The slots are erased (contain garbage) and marked as inactive
2497
2498   Since
2499       5.1
2500
2501   QCryptoBlockAmendOptionsLUKS (Object)
2502       This struct defines the update parameters that activate/de-activate set
2503       of keyslots
2504
2505   Members
2506       state: QCryptoBlockLUKSKeyslotState
2507              the desired state of the keyslots
2508
2509       new-secret: string (optional)
2510              The ID of a QCryptoSecret object providing the  password  to  be
2511              written into added active keyslots
2512
2513       old-secret: string (optional)
2514              Optional  (for  deactivation  only) If given will deactivate all
2515              keyslots that match password located in QCryptoSecret with  this
2516              ID
2517
2518       iter-time: int (optional)
2519              Optional  (for  activation only) Number of milliseconds to spend
2520              in PBKDF passphrase processing for the newly activated  keyslot.
2521              Currently defaults to 2000.
2522
2523       keyslot: int (optional)
2524              Optional. ID of the keyslot to activate/deactivate.  For keyslot
2525              activation, keyslot should not be active already (this is unsafe
2526              to  update an active keyslot), but possible if 'force' parameter
2527              is given.  If keyslot is not given, first free keyslot  will  be
2528              written.
2529
2530              For  keyslot  deactivation,  this  parameter specifies the exact
2531              keyslot to deactivate
2532
2533       secret: string (optional)
2534              Optional. The ID of a QCryptoSecret object providing  the  pass‐
2535              word  to  use  to  retrieve current master key.  Defaults to the
2536              same secret that was used to open the image
2537       Since 5.1
2538
2539   QCryptoBlockAmendOptions (Object)
2540       The options that are available for all encryption formats when amending
2541       encryption settings
2542
2543   Members
2544       The members of QCryptoBlockOptionsBase
2545
2546       The members of QCryptoBlockAmendOptionsLUKS when format is "luks"
2547
2548   Since
2549       5.1
2550
2551   SecretCommonProperties (Object)
2552       Properties for objects of classes derived from secret-common.
2553
2554   Members
2555       loaded: boolean (optional)
2556              if true, the secret is loaded immediately when applying this op‐
2557              tion and will probably fail when  processing  the  next  option.
2558              Don't use; only provided for compatibility. (default: false)
2559
2560       format: QCryptoSecretFormat (optional)
2561              the data format that the secret is provided in (default: raw)
2562
2563       keyid: string (optional)
2564              the  name  of  another secret that should be used to decrypt the
2565              provided data. If not present, the data is assumed to  be  unen‐
2566              crypted.
2567
2568       iv: string (optional)
2569              the  random  initialization  vector  used for encryption of this
2570              particular secret. Should be a base64 encrypted  string  of  the
2571              16-byte IV. Mandatory if keyid is given. Ignored if keyid is ab‐
2572              sent.
2573
2574   Features
2575       deprecated
2576              Member loaded is deprecated.  Setting true doesn't  make  sense,
2577              and false is already the default.
2578
2579   Since
2580       2.6
2581
2582   SecretProperties (Object)
2583       Properties for secret objects.
2584
2585       Either data or file must be provided, but not both.
2586
2587   Members
2588       data: string (optional)
2589              the associated with the secret from
2590
2591       file: string (optional)
2592              the filename to load the data associated with the secret from
2593
2594       The members of SecretCommonProperties
2595
2596   Since
2597       2.6
2598
2599   SecretKeyringProperties (Object)
2600       Properties for secret_keyring objects.
2601
2602   Members
2603       serial: int
2604              serial number that identifies a key to get from the kernel
2605
2606       The members of SecretCommonProperties
2607
2608   Since
2609       5.1
2610
2611   TlsCredsProperties (Object)
2612       Properties for objects of classes derived from tls-creds.
2613
2614   Members
2615       verify-peer: boolean (optional)
2616              if true the peer credentials will be verified once the handshake
2617              is completed.  This is a no-op for anonymous  credentials.  (de‐
2618              fault: true)
2619
2620       dir: string (optional)
2621              the path of the directory that contains the credential files
2622
2623       endpoint: QCryptoTLSCredsEndpoint (optional)
2624              whether  the QEMU network backend that uses the credentials will
2625              be acting as a client or as a server (default: client)
2626
2627       priority: string (optional)
2628              a     gnutls     priority     string     as     described     at
2629              https://gnutls.org/manual/html_node/Priority-Strings.html
2630
2631   Since
2632       2.5
2633
2634   TlsCredsAnonProperties (Object)
2635       Properties for tls-creds-anon objects.
2636
2637   Members
2638       loaded: boolean (optional)
2639              if  true,  the  credentials are loaded immediately when applying
2640              this option and will ignore options that  are  processed  later.
2641              Don't use; only provided for compatibility. (default: false)
2642
2643       The members of TlsCredsProperties
2644
2645   Features
2646       deprecated
2647              Member  loaded  is deprecated.  Setting true doesn't make sense,
2648              and false is already the default.
2649
2650   Since
2651       2.5
2652
2653   TlsCredsPskProperties (Object)
2654       Properties for tls-creds-psk objects.
2655
2656   Members
2657       loaded: boolean (optional)
2658              if true, the credentials are loaded  immediately  when  applying
2659              this  option  and  will ignore options that are processed later.
2660              Don't use; only provided for compatibility. (default: false)
2661
2662       username: string (optional)
2663              the username which will be sent  to  the  server.   For  clients
2664              only.  If absent, "qemu" is sent and the property will read back
2665              as an empty string.
2666
2667       The members of TlsCredsProperties
2668
2669   Features
2670       deprecated
2671              Member loaded is deprecated.  Setting true doesn't  make  sense,
2672              and false is already the default.
2673
2674   Since
2675       3.0
2676
2677   TlsCredsX509Properties (Object)
2678       Properties for tls-creds-x509 objects.
2679
2680   Members
2681       loaded: boolean (optional)
2682              if  true,  the  credentials are loaded immediately when applying
2683              this option and will ignore options that  are  processed  later.
2684              Don't use; only provided for compatibility. (default: false)
2685
2686       sanity-check: boolean (optional)
2687              if true, perform some sanity checks before using the credentials
2688              (default: true)
2689
2690       passwordid: string (optional)
2691              For the server-key.pem and client-key.pem  files  which  contain
2692              sensitive  private keys, it is possible to use an encrypted ver‐
2693              sion by providing the passwordid parameter.  This  provides  the
2694              ID of a previously created secret object containing the password
2695              for decryption.
2696
2697       The members of TlsCredsProperties
2698
2699   Features
2700       deprecated
2701              Member loaded is deprecated.  Setting true doesn't  make  sense,
2702              and false is already the default.
2703
2704   Since
2705       2.5
2706

BLOCK DEVICES

2708   Block core (VM unrelated)
2709   Background jobs
2710   JobType (Enum)
2711       Type of a background job.
2712
2713   Values
2714       commit block commit job type, see "block-commit"
2715
2716       stream block stream job type, see "block-stream"
2717
2718       mirror drive mirror job type, see "drive-mirror"
2719
2720       backup drive backup job type, see "drive-backup"
2721
2722       create image creation job type, see "blockdev-create" (since 3.0)
2723
2724       amend  image options amend job type, see "x-blockdev-amend" (since 5.1)
2725
2726       snapshot-load
2727              snapshot load job type, see "snapshot-load" (since 6.0)
2728
2729       snapshot-save
2730              snapshot save job type, see "snapshot-save" (since 6.0)
2731
2732       snapshot-delete
2733              snapshot delete job type, see "snapshot-delete" (since 6.0)
2734
2735   Since
2736       1.7
2737
2738   JobStatus (Enum)
2739       Indicates the present state of a given job in its lifetime.
2740
2741   Values
2742       undefined
2743              Erroneous, default state. Should not ever be visible.
2744
2745       created
2746              The job has been created, but not yet started.
2747
2748       running
2749              The job is currently running.
2750
2751       paused The  job  is  running, but paused. The pause may be requested by
2752              either the QMP user or by internal processes.
2753
2754       ready  The job is running, but is ready for the user to signal  comple‐
2755              tion.   This  is used for long-running jobs like mirror that are
2756              designed to run indefinitely.
2757
2758       standby
2759              The job is ready,  but  paused.  This  is  nearly  identical  to
2760              paused.  The job may return to ready or otherwise be canceled.
2761
2762       waiting
2763              The job is waiting for other jobs in the transaction to converge
2764              to the waiting state. This status will likely not be visible for
2765              the last job in a transaction.
2766
2767       pending
2768              The  job  has finished its work, but has finalization steps that
2769              it needs to make prior to completing. These changes will require
2770              manual intervention via job-finalize if auto-finalize was set to
2771              false. These pending changes may still fail.
2772
2773       aborting
2774              The job is in the process of being aborted, and will finish with
2775              an  error.  The job will afterwards report that it is concluded.
2776              This status may not be visible to the management process.
2777
2778       concluded
2779              The job has finished all work. If auto-dismiss was set to false,
2780              the  job will remain in the query list until it is dismissed via
2781              job-dismiss.
2782
2783       null   The job is in the process of being dismantled. This state should
2784              not ever be visible externally.
2785
2786   Since
2787       2.12
2788
2789   JobVerb (Enum)
2790       Represents command verbs that can be applied to a job.
2791
2792   Values
2793       cancel see job-cancel
2794
2795       pause  see job-pause
2796
2797       resume see job-resume
2798
2799       set-speed
2800              see block-job-set-speed
2801
2802       complete
2803              see job-complete
2804
2805       dismiss
2806              see job-dismiss
2807
2808       finalize
2809              see job-finalize
2810
2811   Since
2812       2.12
2813
2814   JOB_STATUS_CHANGE (Event)
2815       Emitted when a job transitions to a different status.
2816
2817   Arguments
2818       id: string
2819              The job identifier
2820
2821       status: JobStatus
2822              The new job status
2823
2824   Since
2825       3.0
2826
2827   job-pause (Command)
2828       Pause an active job.
2829
2830       This command returns immediately after marking the active job for paus‐
2831       ing.  Pausing an already paused job is an error.
2832
2833       The job will pause as soon as possible, which means transitioning  into
2834       the  PAUSED  state  if it was RUNNING, or into STANDBY if it was READY.
2835       The corresponding JOB_STATUS_CHANGE event will be emitted.
2836
2837       Cancelling a paused job automatically resumes it.
2838
2839   Arguments
2840       id: string
2841              The job identifier.
2842
2843   Since
2844       3.0
2845
2846   job-resume (Command)
2847       Resume a paused job.
2848
2849       This command returns immediately after resuming a paused job.  Resuming
2850       an already running job is an error.
2851
2852       id : The job identifier.
2853
2854   Arguments
2855       id: string
2856              Not documented
2857
2858   Since
2859       3.0
2860
2861   job-cancel (Command)
2862       Instruct  an  active  background job to cancel at the next opportunity.
2863       This command returns immediately after marking the active job for  can‐
2864       cellation.
2865
2866       The  job  will  cancel  as  soon  as  possible and then emit a JOB_STA‐
2867       TUS_CHANGE event. Usually, the status will change to ABORTING,  but  it
2868       is  possible that a job successfully completes (e.g. because it was al‐
2869       most done and there was no opportunity to cancel earlier than  complet‐
2870       ing the job) and transitions to PENDING instead.
2871
2872   Arguments
2873       id: string
2874              The job identifier.
2875
2876   Since
2877       3.0
2878
2879   job-complete (Command)
2880       Manually trigger completion of an active job in the READY state.
2881
2882   Arguments
2883       id: string
2884              The job identifier.
2885
2886   Since
2887       3.0
2888
2889   job-dismiss (Command)
2890       Deletes  a  job that is in the CONCLUDED state. This command only needs
2891       to be run explicitly for jobs that don't  have  automatic  dismiss  en‐
2892       abled.
2893
2894       This command will refuse to operate on any job that has not yet reached
2895       its terminal state, JOB_STATUS_CONCLUDED. For jobs  that  make  use  of
2896       JOB_READY  event, job-cancel or job-complete will still need to be used
2897       as appropriate.
2898
2899   Arguments
2900       id: string
2901              The job identifier.
2902
2903   Since
2904       3.0
2905
2906   job-finalize (Command)
2907       Instructs all jobs in a transaction (or a single job if it is not  part
2908       of  any transaction) to finalize any graph changes and do any necessary
2909       cleanup. This command requires that all involved jobs are in the  PEND‐
2910       ING state.
2911
2912       For  jobs  in a transaction, instructing one job to finalize will force
2913       ALL jobs in the transaction to finalize, so it is only necessary to in‐
2914       struct a single member job to finalize.
2915
2916   Arguments
2917       id: string
2918              The  identifier  of any job in the transaction, or of a job that
2919              is not part of any transaction.
2920
2921   Since
2922       3.0
2923
2924   JobInfo (Object)
2925       Information about a job.
2926
2927   Members
2928       id: string
2929              The job identifier
2930
2931       type: JobType
2932              The kind of job that is being performed
2933
2934       status: JobStatus
2935              Current job state/status
2936
2937       current-progress: int
2938              Progress made until now. The unit is arbitrary and the value can
2939              only  meaningfully  be used for the ratio of current-progress to
2940              total-progress. The value is monotonically increasing.
2941
2942       total-progress: int
2943              Estimated current-progress value at the completion of  the  job.
2944              This  value  can arbitrarily change while the job is running, in
2945              both directions.
2946
2947       error: string (optional)
2948              If this field is present, the job failed; if it is still missing
2949              in the CONCLUDED state, this indicates successful completion.
2950
2951              The value is a human-readable error message to describe the rea‐
2952              son for the job failure. It should not  be  parsed  by  applica‐
2953              tions.
2954
2955   Since
2956       3.0
2957
2958   query-jobs (Command)
2959       Return information about jobs.
2960
2961   Returns
2962       a list with a JobInfo for each active job
2963
2964   Since
2965       3.0
2966
2967   SnapshotInfo (Object)
2968   Members
2969       id: string
2970              unique snapshot id
2971
2972       name: string
2973              user chosen name
2974
2975       vm-state-size: int
2976              size of the VM state
2977
2978       date-sec: int
2979              UTC date of the snapshot in seconds
2980
2981       date-nsec: int
2982              fractional part in nano seconds to be used with date-sec
2983
2984       vm-clock-sec: int
2985              VM clock relative to boot in seconds
2986
2987       vm-clock-nsec: int
2988              fractional part in nano seconds to be used with vm-clock-sec
2989
2990       icount: int (optional)
2991              Current  instruction count. Appears when execution record/replay
2992              is enabled. Used for "time-traveling" to match the moment in the
2993              recorded  execution  with the snapshots. This counter may be ob‐
2994              tained through query-replay command (since 5.2)
2995
2996   Since
2997       1.3
2998
2999   ImageInfoSpecificQCow2EncryptionBase (Object)
3000   Members
3001       format: BlockdevQcow2EncryptionFormat
3002              The encryption format
3003
3004   Since
3005       2.10
3006
3007   ImageInfoSpecificQCow2Encryption (Object)
3008   Members
3009       The members of ImageInfoSpecificQCow2EncryptionBase
3010
3011       The members of QCryptoBlockInfoLUKS when format is "luks"
3012
3013   Since
3014       2.10
3015
3016   ImageInfoSpecificQCow2 (Object)
3017   Members
3018       compat: string
3019              compatibility level
3020
3021       data-file: string (optional)
3022              the filename of the external data file that is stored in the im‐
3023              age and used as a default for opening the image (since: 4.0)
3024
3025       data-file-raw: boolean (optional)
3026              True  if  the external data file must stay valid as a standalone
3027              (read-only) raw image without looking at qcow2 metadata  (since:
3028              4.0)
3029
3030       extended-l2: boolean (optional)
3031              true if the image has extended L2 entries; only valid for compat
3032              >= 1.1 (since 5.2)
3033
3034       lazy-refcounts: boolean (optional)
3035              on or off; only valid for compat >= 1.1
3036
3037       corrupt: boolean (optional)
3038              true if the image has been marked corrupt; only valid for compat
3039              >= 1.1 (since 2.2)
3040
3041       refcount-bits: int
3042              width of a refcount entry in bits (since 2.3)
3043
3044       encrypt: ImageInfoSpecificQCow2Encryption (optional)
3045              details  about  encryption  parameters; only set if image is en‐
3046              crypted (since 2.10)
3047
3048       bitmaps: array of Qcow2BitmapInfo (optional)
3049              A list of qcow2 bitmap details (since 4.0)
3050
3051       compression-type: Qcow2CompressionType
3052              the image cluster compression method (since 5.1)
3053
3054   Since
3055       1.7
3056
3057   ImageInfoSpecificVmdk (Object)
3058   Members
3059       create-type: string
3060              The create type of VMDK image
3061
3062       cid: int
3063              Content id of image
3064
3065       parent-cid: int
3066              Parent VMDK image's cid
3067
3068       extents: array of ImageInfo
3069              List of extent files
3070
3071   Since
3072       1.7
3073
3074   ImageInfoSpecificRbd (Object)
3075   Members
3076       encryption-format: RbdImageEncryptionFormat (optional)
3077              Image encryption format
3078
3079   Since
3080       6.1
3081
3082   ImageInfoSpecificKind (Enum)
3083   Values
3084       luks   Since 2.7
3085
3086       rbd    Since 6.1
3087
3088       qcow2  Not documented
3089
3090       vmdk   Not documented
3091
3092   Since
3093       1.7
3094
3095   ImageInfoSpecificQCow2Wrapper (Object)
3096   Members
3097       data: ImageInfoSpecificQCow2
3098              Not documented
3099
3100   Since
3101       1.7
3102
3103   ImageInfoSpecificVmdkWrapper (Object)
3104   Members
3105       data: ImageInfoSpecificVmdk
3106              Not documented
3107
3108   Since
3109       6.1
3110
3111   ImageInfoSpecificLUKSWrapper (Object)
3112   Members
3113       data: QCryptoBlockInfoLUKS
3114              Not documented
3115
3116   Since
3117       2.7
3118
3119   ImageInfoSpecificRbdWrapper (Object)
3120   Members
3121       data: ImageInfoSpecificRbd
3122              Not documented
3123
3124   Since
3125       6.1
3126
3127   ImageInfoSpecific (Object)
3128       A discriminated record of image format specific information structures.
3129
3130   Members
3131       type: ImageInfoSpecificKind
3132              Not documented
3133
3134       The members of ImageInfoSpecificQCow2Wrapper when type is "qcow2"
3135
3136       The members of ImageInfoSpecificVmdkWrapper when type is "vmdk"
3137
3138       The members of ImageInfoSpecificLUKSWrapper when type is "luks"
3139
3140       The members of ImageInfoSpecificRbdWrapper when type is "rbd"
3141
3142   Since
3143       1.7
3144
3145   ImageInfo (Object)
3146       Information about a QEMU image file
3147
3148   Members
3149       filename: string
3150              name of the image file
3151
3152       format: string
3153              format of the image file
3154
3155       virtual-size: int
3156              maximum capacity in bytes of the image
3157
3158       actual-size: int (optional)
3159              actual size on disk in bytes of the image
3160
3161       dirty-flag: boolean (optional)
3162              true if image is not cleanly closed
3163
3164       cluster-size: int (optional)
3165              size of a cluster in bytes
3166
3167       encrypted: boolean (optional)
3168              true if the image is encrypted
3169
3170       compressed: boolean (optional)
3171              true if the image is compressed (Since 1.7)
3172
3173       backing-filename: string (optional)
3174              name of the backing file
3175
3176       full-backing-filename: string (optional)
3177              full path of the backing file
3178
3179       backing-filename-format: string (optional)
3180              the format of the backing file
3181
3182       snapshots: array of SnapshotInfo (optional)
3183              list of VM snapshots
3184
3185       backing-image: ImageInfo (optional)
3186              info of the backing image (since 1.6)
3187
3188       format-specific: ImageInfoSpecific (optional)
3189              structure  supplying  additional   format-specific   information
3190              (since 1.7)
3191
3192   Since
3193       1.3
3194
3195   ImageCheck (Object)
3196       Information about a QEMU image file check
3197
3198   Members
3199       filename: string
3200              name of the image file checked
3201
3202       format: string
3203              format of the image file checked
3204
3205       check-errors: int
3206              number of unexpected errors occurred during check
3207
3208       image-end-offset: int (optional)
3209              offset (in bytes) where the image ends, this field is present if
3210              the driver for the image format supports it
3211
3212       corruptions: int (optional)
3213              number of corruptions found during the check if any
3214
3215       leaks: int (optional)
3216              number of leaks found during the check if any
3217
3218       corruptions-fixed: int (optional)
3219              number of corruptions fixed during the check if any
3220
3221       leaks-fixed: int (optional)
3222              number of leaks fixed during the check if any
3223
3224       total-clusters: int (optional)
3225              total number of clusters, this field is present  if  the  driver
3226              for the image format supports it
3227
3228       allocated-clusters: int (optional)
3229              total number of allocated clusters, this field is present if the
3230              driver for the image format supports it
3231
3232       fragmented-clusters: int (optional)
3233              total number of fragmented clusters, this field  is  present  if
3234              the driver for the image format supports it
3235
3236       compressed-clusters: int (optional)
3237              total  number  of  compressed clusters, this field is present if
3238              the driver for the image format supports it
3239
3240   Since
3241       1.4
3242
3243   MapEntry (Object)
3244       Mapping information from a virtual block range to a host file range
3245
3246   Members
3247       start: int
3248              virtual (guest) offset of the first byte described by this entry
3249
3250       length: int
3251              the number of bytes of the mapped virtual range
3252
3253       data: boolean
3254              reading the image will actually read data from a file  (in  par‐
3255              ticular,  if  offset  is present this means that the sectors are
3256              not simply preallocated, but contain actual data in raw format)
3257
3258       zero: boolean
3259              whether the virtual blocks read as zeroes
3260
3261       depth: int
3262              number of layers (0 = top image, 1 = top image's  backing  file,
3263              ...,  n  -  1 = bottom image (where n is the number of images in
3264              the chain)) before reaching one for which the range is allocated
3265
3266       present: boolean
3267              true if this layer provides the data, false if adding a  backing
3268              layer could impact this region (since 6.1)
3269
3270       offset: int (optional)
3271              if present, the image file stores the data for this range in raw
3272              format at the given (host) offset
3273
3274       filename: string (optional)
3275              filename that is referred to by offset
3276
3277   Since
3278       2.6
3279
3280   BlockdevCacheInfo (Object)
3281       Cache mode information for a block device
3282
3283   Members
3284       writeback: boolean
3285              true if writeback mode is enabled
3286
3287       direct: boolean
3288              true if the host page cache is bypassed (O_DIRECT)
3289
3290       no-flush: boolean
3291              true if flush requests are ignored for the device
3292
3293   Since
3294       2.3
3295
3296   BlockDeviceInfo (Object)
3297       Information about the backing device for a block device.
3298
3299   Members
3300       file: string
3301              the filename of the backing device
3302
3303       node-name: string (optional)
3304              the name of the block driver node (Since 2.0)
3305
3306       ro: boolean
3307              true if the backing device was open read-only
3308
3309       drv: string
3310              the name of the block format used to open the backing device. As
3311              of 0.14 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
3312              'file',  'file',  'ftp',  'ftps',  'host_cdrom',  'host_device',
3313              'http',  'https',  'luks',  'nbd', 'parallels', 'qcow', 'qcow2',
3314              'raw', 'vdi', 'vmdk', 'vpc', 'vvfat' 2.2:  'archipelago'  added,
3315              'cow'  dropped  2.3: 'host_floppy' deprecated 2.5: 'host_floppy'
3316              dropped 2.6:  'luks'  added  2.8:  'replication'  added,  'tftp'
3317              dropped 2.9: 'archipelago' dropped
3318
3319       backing_file: string (optional)
3320              the name of the backing file (for copy-on-write)
3321
3322       backing_file_depth: int
3323              number of files in the backing file chain (since: 1.2)
3324
3325       encrypted: boolean
3326              true if the backing device is encrypted
3327
3328       detect_zeroes: BlockdevDetectZeroesOptions
3329              detect and optimize zero writes (Since 2.1)
3330
3331       bps: int
3332              total throughput limit in bytes per second is specified
3333
3334       bps_rd: int
3335              read throughput limit in bytes per second is specified
3336
3337       bps_wr: int
3338              write throughput limit in bytes per second is specified
3339
3340       iops: int
3341              total I/O operations per second is specified
3342
3343       iops_rd: int
3344              read I/O operations per second is specified
3345
3346       iops_wr: int
3347              write I/O operations per second is specified
3348
3349       image: ImageInfo
3350              the info of image used (since: 1.6)
3351
3352       bps_max: int (optional)
3353
3354              total throughput limit during bursts,
3355                     in bytes (Since 1.7)
3356
3357       bps_rd_max: int (optional)
3358
3359              read throughput limit during bursts,
3360                     in bytes (Since 1.7)
3361
3362       bps_wr_max: int (optional)
3363
3364              write throughput limit during bursts,
3365                     in bytes (Since 1.7)
3366
3367       iops_max: int (optional)
3368
3369              total I/O operations per second during bursts,
3370                     in bytes (Since 1.7)
3371
3372       iops_rd_max: int (optional)
3373
3374              read I/O operations per second during bursts,
3375                     in bytes (Since 1.7)
3376
3377       iops_wr_max: int (optional)
3378
3379              write I/O operations per second during bursts,
3380                     in bytes (Since 1.7)
3381
3382       bps_max_length: int (optional)
3383
3384              maximum length of the bps_max burst
3385                     period, in seconds. (Since 2.6)
3386
3387       bps_rd_max_length: int (optional)
3388
3389              maximum length of the bps_rd_max
3390                     burst period, in seconds. (Since 2.6)
3391
3392       bps_wr_max_length: int (optional)
3393
3394              maximum length of the bps_wr_max
3395                     burst period, in seconds. (Since 2.6)
3396
3397       iops_max_length: int (optional)
3398
3399              maximum length of the iops burst
3400                     period, in seconds. (Since 2.6)
3401
3402       iops_rd_max_length: int (optional)
3403
3404              maximum length of the iops_rd_max
3405                     burst period, in seconds. (Since 2.6)
3406
3407       iops_wr_max_length: int (optional)
3408
3409              maximum length of the iops_wr_max
3410                     burst period, in seconds. (Since 2.6)
3411
3412       iops_size: int (optional)
3413              an I/O size in bytes (Since 1.7)
3414
3415       group: string (optional)
3416              throttle group name (Since 2.4)
3417
3418       cache: BlockdevCacheInfo
3419              the cache mode used for the block device (since: 2.3)
3420
3421       write_threshold: int
3422              configured  write  threshold  for  the  device.   0 if disabled.
3423              (Since 2.3)
3424
3425       dirty-bitmaps: array of BlockDirtyInfo (optional)
3426              dirty bitmaps information (only present if node has one or  more
3427              dirty bitmaps) (Since 4.2)
3428
3429   Since
3430       0.14
3431
3432   BlockDeviceIoStatus (Enum)
3433       An enumeration of block device I/O status.
3434
3435   Values
3436       ok     The last I/O operation has succeeded
3437
3438       failed The last I/O operation has failed
3439
3440       nospace
3441              The last I/O operation has failed due to a no-space condition
3442
3443   Since
3444       1.0
3445
3446   BlockDirtyInfo (Object)
3447       Block dirty bitmap information.
3448
3449   Members
3450       name: string (optional)
3451              the name of the dirty bitmap (Since 2.4)
3452
3453       count: int
3454              number of dirty bytes according to the dirty bitmap
3455
3456       granularity: int
3457              granularity of the dirty bitmap in bytes (since 1.4)
3458
3459       recording: boolean
3460              true  if the bitmap is recording new writes from the guest.  Re‐
3461              places active and disabled statuses. (since 4.0)
3462
3463       busy: boolean
3464              true if the bitmap is in-use by some operation (NBD or jobs) and
3465              cannot  be  modified  via QMP or used by another operation.  Re‐
3466              places locked and frozen statuses. (since 4.0)
3467
3468       persistent: boolean
3469              true if the bitmap was stored on disk, is scheduled to be stored
3470              on disk, or both. (since 4.0)
3471
3472       inconsistent: boolean (optional)
3473              true  if this is a persistent bitmap that was improperly stored.
3474              Implies persistent to be true; recording and busy to  be  false.
3475              This  bitmap  cannot be used. To remove it, use block-dirty-bit‐
3476              map-remove. (Since 4.0)
3477
3478   Since
3479       1.3
3480
3481   Qcow2BitmapInfoFlags (Enum)
3482       An enumeration of flags that a bitmap can report to the user.
3483
3484   Values
3485       in-use This flag is set by any process  actively  modifying  the  qcow2
3486              file,  and  cleared  when  the  updated bitmap is flushed to the
3487              qcow2 image.  The presence of this  flag  in  an  offline  image
3488              means that the bitmap was not saved correctly after its last us‐
3489              age, and may contain inconsistent data.
3490
3491       auto   The bitmap must reflect all changes of the virtual disk  by  any
3492              application that would write to this qcow2 file.
3493
3494   Since
3495       4.0
3496
3497   Qcow2BitmapInfo (Object)
3498       Qcow2 bitmap information.
3499
3500   Members
3501       name: string
3502              the name of the bitmap
3503
3504       granularity: int
3505              granularity of the bitmap in bytes
3506
3507       flags: array of Qcow2BitmapInfoFlags
3508              flags of the bitmap
3509
3510   Since
3511       4.0
3512
3513   BlockLatencyHistogramInfo (Object)
3514       Block latency histogram.
3515
3516   Members
3517       boundaries: array of int
3518              list  of  interval  boundary  values in nanoseconds, all greater
3519              than zero and in ascending order.  For example,  the  list  [10,
3520              50,  100]  produces  the following histogram intervals: [0, 10),
3521              [10, 50), [50, 100), [100, +inf).
3522
3523       bins: array of int
3524              list of io request counts corresponding to histogram  intervals.
3525              len(bins)  = len(boundaries) + 1 For the example above, bins may
3526              be something like [3, 1,  5,  2],  and  corresponding  histogram
3527              looks like:
3528
3529          5|           *
3530          4|           *
3531          3| *         *
3532          2| *         *    *
3533          1| *    *    *    *
3534           +------------------
3535               10   50   100
3536
3537   Since
3538       4.0
3539
3540   BlockInfo (Object)
3541       Block  device  information.   This structure describes a virtual device
3542       and the backing device associated with it.
3543
3544   Members
3545       device: string
3546              The device name associated with the virtual device.
3547
3548       qdev: string (optional)
3549              The qdev ID, or if no ID is assigned, the QOM path of the  block
3550              device. (since 2.10)
3551
3552       type: string
3553              This field is returned only for compatibility reasons, it should
3554              not be used (always returns 'unknown')
3555
3556       removable: boolean
3557              True if the device supports removable media.
3558
3559       locked: boolean
3560              True if the guest has locked this device from having  its  media
3561              removed
3562
3563       tray_open: boolean (optional)
3564              True  if  the  device's  tray  is open (only present if it has a
3565              tray)
3566
3567       io-status: BlockDeviceIoStatus (optional)
3568              BlockDeviceIoStatus. Only present if the device supports it  and
3569              the VM is configured to stop on errors (supported device models:
3570              virtio-blk, IDE, SCSI except scsi-generic)
3571
3572       inserted: BlockDeviceInfo (optional)
3573              BlockDeviceInfo describing the device if media is present
3574
3575   Since
3576       0.14
3577
3578   BlockMeasureInfo (Object)
3579       Image file size calculation information.  This structure describes  the
3580       size requirements for creating a new image file.
3581
3582       The  size  requirements depend on the new image file format.  File size
3583       always equals virtual disk size for the 'raw' format, even  for  sparse
3584       POSIX files.  Compact formats such as 'qcow2' represent unallocated and
3585       zero regions efficiently so file size may be smaller than virtual  disk
3586       size.
3587
3588       The  values  are  upper bounds that are guaranteed to fit the new image
3589       file.  Subsequent modification, such as internal  snapshot  or  further
3590       bitmap creation, may require additional space and is not covered here.
3591
3592   Members
3593       required: int
3594              Size  required for a new image file, in bytes, when copying just
3595              allocated guest-visible contents.
3596
3597       fully-allocated: int
3598              Image file size, in bytes, once data has  been  written  to  all
3599              sectors, when copying just guest-visible contents.
3600
3601       bitmaps: int (optional)
3602              Additional size required if all the top-level bitmap metadata in
3603              the source image were to be copied to the  destination,  present
3604              only  when  source  and destination both support persistent bit‐
3605              maps. (since 5.1)
3606
3607   Since
3608       2.10
3609
3610   query-block (Command)
3611       Get a list of BlockInfo for all virtual block devices.
3612
3613   Returns
3614       a list of BlockInfo describing each virtual block device. Filter  nodes
3615       that were created implicitly are skipped over.
3616
3617   Since
3618       0.14
3619
3620   Example
3621          -> { "execute": "query-block" }
3622          <- {
3623                "return":[
3624                   {
3625                      "io-status": "ok",
3626                      "device":"ide0-hd0",
3627                      "locked":false,
3628                      "removable":false,
3629                      "inserted":{
3630                         "ro":false,
3631                         "drv":"qcow2",
3632                         "encrypted":false,
3633                         "file":"disks/test.qcow2",
3634                         "backing_file_depth":1,
3635                         "bps":1000000,
3636                         "bps_rd":0,
3637                         "bps_wr":0,
3638                         "iops":1000000,
3639                         "iops_rd":0,
3640                         "iops_wr":0,
3641                         "bps_max": 8000000,
3642                         "bps_rd_max": 0,
3643                         "bps_wr_max": 0,
3644                         "iops_max": 0,
3645                         "iops_rd_max": 0,
3646                         "iops_wr_max": 0,
3647                         "iops_size": 0,
3648                         "detect_zeroes": "on",
3649                         "write_threshold": 0,
3650                         "image":{
3651                            "filename":"disks/test.qcow2",
3652                            "format":"qcow2",
3653                            "virtual-size":2048000,
3654                            "backing_file":"base.qcow2",
3655                            "full-backing-filename":"disks/base.qcow2",
3656                            "backing-filename-format":"qcow2",
3657                            "snapshots":[
3658                               {
3659                                  "id": "1",
3660                                  "name": "snapshot1",
3661                                  "vm-state-size": 0,
3662                                  "date-sec": 10000200,
3663                                  "date-nsec": 12,
3664                                  "vm-clock-sec": 206,
3665                                  "vm-clock-nsec": 30
3666                               }
3667                            ],
3668                            "backing-image":{
3669                                "filename":"disks/base.qcow2",
3670                                "format":"qcow2",
3671                                "virtual-size":2048000
3672                            }
3673                         }
3674                      },
3675                      "qdev": "ide_disk",
3676                      "type":"unknown"
3677                   },
3678                   {
3679                      "io-status": "ok",
3680                      "device":"ide1-cd0",
3681                      "locked":false,
3682                      "removable":true,
3683                      "qdev": "/machine/unattached/device[23]",
3684                      "tray_open": false,
3685                      "type":"unknown"
3686                   },
3687                   {
3688                      "device":"floppy0",
3689                      "locked":false,
3690                      "removable":true,
3691                      "qdev": "/machine/unattached/device[20]",
3692                      "type":"unknown"
3693                   },
3694                   {
3695                      "device":"sd0",
3696                      "locked":false,
3697                      "removable":true,
3698                      "type":"unknown"
3699                   }
3700                ]
3701             }
3702
3703   BlockDeviceTimedStats (Object)
3704       Statistics of a block device during a given interval of time.
3705
3706   Members
3707       interval_length: int
3708              Interval used for calculating the statistics, in seconds.
3709
3710       min_rd_latency_ns: int
3711              Minimum  latency  of read operations in the defined interval, in
3712              nanoseconds.
3713
3714       min_wr_latency_ns: int
3715              Minimum latency of write operations in the defined interval,  in
3716              nanoseconds.
3717
3718       min_flush_latency_ns: int
3719              Minimum  latency of flush operations in the defined interval, in
3720              nanoseconds.
3721
3722       max_rd_latency_ns: int
3723              Maximum latency of read operations in the defined  interval,  in
3724              nanoseconds.
3725
3726       max_wr_latency_ns: int
3727              Maximum  latency of write operations in the defined interval, in
3728              nanoseconds.
3729
3730       max_flush_latency_ns: int
3731              Maximum latency of flush operations in the defined interval,  in
3732              nanoseconds.
3733
3734       avg_rd_latency_ns: int
3735              Average  latency  of read operations in the defined interval, in
3736              nanoseconds.
3737
3738       avg_wr_latency_ns: int
3739              Average latency of write operations in the defined interval,  in
3740              nanoseconds.
3741
3742       avg_flush_latency_ns: int
3743              Average  latency of flush operations in the defined interval, in
3744              nanoseconds.
3745
3746       avg_rd_queue_depth: number
3747              Average number of pending read operations in the defined  inter‐
3748              val.
3749
3750       avg_wr_queue_depth: number
3751              Average number of pending write operations in the defined inter‐
3752              val.
3753
3754   Since
3755       2.5
3756
3757   BlockDeviceStats (Object)
3758       Statistics of a virtual block device or a block backing device.
3759
3760   Members
3761       rd_bytes: int
3762              The number of bytes read by the device.
3763
3764       wr_bytes: int
3765              The number of bytes written by the device.
3766
3767       unmap_bytes: int
3768              The number of bytes unmapped by the device (Since 4.2)
3769
3770       rd_operations: int
3771              The number of read operations performed by the device.
3772
3773       wr_operations: int
3774              The number of write operations performed by the device.
3775
3776       flush_operations: int
3777              The number of cache flush operations  performed  by  the  device
3778              (since 0.15)
3779
3780       unmap_operations: int
3781              The  number  of  unmap operations performed by the device (Since
3782              4.2)
3783
3784       rd_total_time_ns: int
3785              Total time spent on reads in nanoseconds (since 0.15).
3786
3787       wr_total_time_ns: int
3788              Total time spent on writes in nanoseconds (since 0.15).
3789
3790       flush_total_time_ns: int
3791              Total time spent on cache flushes in nanoseconds (since 0.15).
3792
3793       unmap_total_time_ns: int
3794              Total time spent on unmap operations in nanoseconds (Since 4.2)
3795
3796       wr_highest_offset: int
3797              The offset after the greatest byte written to the  device.   The
3798              intended  use  of  this information is for growable sparse files
3799              (like qcow2) that are used on top of a physical device.
3800
3801       rd_merged: int
3802              Number of read requests that have been merged into  another  re‐
3803              quest (Since 2.3).
3804
3805       wr_merged: int
3806              Number  of write requests that have been merged into another re‐
3807              quest (Since 2.3).
3808
3809       unmap_merged: int
3810              Number of unmap requests that have been merged into another  re‐
3811              quest (Since 4.2)
3812
3813       idle_time_ns: int (optional)
3814              Time  since the last I/O operation, in nanoseconds. If the field
3815              is absent it means that there haven't been  any  operations  yet
3816              (Since 2.5).
3817
3818       failed_rd_operations: int
3819              The  number  of  failed  read operations performed by the device
3820              (Since 2.5)
3821
3822       failed_wr_operations: int
3823              The number of failed write operations performed  by  the  device
3824              (Since 2.5)
3825
3826       failed_flush_operations: int
3827              The  number  of  failed flush operations performed by the device
3828              (Since 2.5)
3829
3830       failed_unmap_operations: int
3831              The number of failed unmap operations performed  by  the  device
3832              (Since 4.2)
3833
3834       invalid_rd_operations: int
3835
3836              The number of invalid read operations
3837                     performed by the device (Since 2.5)
3838
3839       invalid_wr_operations: int
3840              The  number  of invalid write operations performed by the device
3841              (Since 2.5)
3842
3843       invalid_flush_operations: int
3844              The number of invalid flush operations performed by  the  device
3845              (Since 2.5)
3846
3847       invalid_unmap_operations: int
3848              The  number  of invalid unmap operations performed by the device
3849              (Since 4.2)
3850
3851       account_invalid: boolean
3852              Whether invalid operations are included in the last access  sta‐
3853              tistics (Since 2.5)
3854
3855       account_failed: boolean
3856              Whether  failed  operations are included in the latency and last
3857              access statistics (Since 2.5)
3858
3859       timed_stats: array of BlockDeviceTimedStats
3860              Statistics specific to the set of previously  defined  intervals
3861              of time (Since 2.5)
3862
3863       rd_latency_histogram: BlockLatencyHistogramInfo (optional)
3864              BlockLatencyHistogramInfo. (Since 4.0)
3865
3866       wr_latency_histogram: BlockLatencyHistogramInfo (optional)
3867              BlockLatencyHistogramInfo. (Since 4.0)
3868
3869       flush_latency_histogram: BlockLatencyHistogramInfo (optional)
3870              BlockLatencyHistogramInfo. (Since 4.0)
3871
3872   Since
3873       0.14
3874
3875   BlockStatsSpecificFile (Object)
3876       File driver statistics
3877
3878   Members
3879       discard-nb-ok: int
3880              The  number  of  successful  discard operations performed by the
3881              driver.
3882
3883       discard-nb-failed: int
3884              The number of failed discard operations performed by the driver.
3885
3886       discard-bytes-ok: int
3887              The number of bytes discarded by the driver.
3888
3889   Since
3890       4.2
3891
3892   BlockStatsSpecificNvme (Object)
3893       NVMe driver statistics
3894
3895   Members
3896       completion-errors: int
3897              The number of completion errors.
3898
3899       aligned-accesses: int
3900              The number of aligned accesses performed by the driver.
3901
3902       unaligned-accesses: int
3903              The number of unaligned accesses performed by the driver.
3904
3905   Since
3906       5.2
3907
3908   BlockStatsSpecific (Object)
3909       Block driver specific statistics
3910
3911   Members
3912       driver: BlockdevDriver
3913              Not documented
3914
3915       The members of BlockStatsSpecificFile when driver is "file"
3916
3917       The members of BlockStatsSpecificFile when driver is "host_device" (If:
3918       HAVE_HOST_BLOCK_DEVICE)
3919
3920       The members of BlockStatsSpecificNvme when driver is "nvme"
3921
3922   Since
3923       4.2
3924
3925   BlockStats (Object)
3926       Statistics of a virtual block device or a block backing device.
3927
3928   Members
3929       device: string (optional)
3930              If  the  stats  are  for a virtual block device, the name corre‐
3931              sponding to the virtual block device.
3932
3933       node-name: string (optional)
3934              The node name of the device. (Since 2.3)
3935
3936       qdev: string (optional)
3937              The qdev ID, or if no ID is assigned, the QOM path of the  block
3938              device. (since 3.0)
3939
3940       stats: BlockDeviceStats
3941              A BlockDeviceStats for the device.
3942
3943       driver-specific: BlockStatsSpecific (optional)
3944              Optional driver-specific stats. (Since 4.2)
3945
3946       parent: BlockStats (optional)
3947              This  describes  the  file block device if it has one.  Contains
3948              recursively the statistics of the underlying protocol (e.g.  the
3949              host  file  for a qcow2 image). If there is no underlying proto‐
3950              col, this field is omitted
3951
3952       backing: BlockStats (optional)
3953              This describes the backing block device if it has  one.   (Since
3954              2.0)
3955
3956   Since
3957       0.14
3958
3959   query-blockstats (Command)
3960       Query the BlockStats for all virtual block devices.
3961
3962   Arguments
3963       query-nodes: boolean (optional)
3964              If  true, the command will query all the block nodes that have a
3965              node name, in a list which will  include  "parent"  information,
3966              but  not "backing".  If false or omitted, the behavior is as be‐
3967              fore - query all  the  device  backends,  recursively  including
3968              their "parent" and "backing". Filter nodes that were created im‐
3969              plicitly are skipped over in this mode. (Since 2.3)
3970
3971   Returns
3972       A list of BlockStats for each virtual block devices.
3973
3974   Since
3975       0.14
3976
3977   Example
3978          -> { "execute": "query-blockstats" }
3979          <- {
3980                "return":[
3981                   {
3982                      "device":"ide0-hd0",
3983                      "parent":{
3984                         "stats":{
3985                            "wr_highest_offset":3686448128,
3986                            "wr_bytes":9786368,
3987                            "wr_operations":751,
3988                            "rd_bytes":122567168,
3989                            "rd_operations":36772
3990                            "wr_total_times_ns":313253456
3991                            "rd_total_times_ns":3465673657
3992                            "flush_total_times_ns":49653
3993                            "flush_operations":61,
3994                            "rd_merged":0,
3995                            "wr_merged":0,
3996                            "idle_time_ns":2953431879,
3997                            "account_invalid":true,
3998                            "account_failed":false
3999                         }
4000                      },
4001                      "stats":{
4002                         "wr_highest_offset":2821110784,
4003                         "wr_bytes":9786368,
4004                         "wr_operations":692,
4005                         "rd_bytes":122739200,
4006                         "rd_operations":36604
4007                         "flush_operations":51,
4008                         "wr_total_times_ns":313253456
4009                         "rd_total_times_ns":3465673657
4010                         "flush_total_times_ns":49653,
4011                         "rd_merged":0,
4012                         "wr_merged":0,
4013                         "idle_time_ns":2953431879,
4014                         "account_invalid":true,
4015                         "account_failed":false
4016                      },
4017                      "qdev": "/machine/unattached/device[23]"
4018                   },
4019                   {
4020                      "device":"ide1-cd0",
4021                      "stats":{
4022                         "wr_highest_offset":0,
4023                         "wr_bytes":0,
4024                         "wr_operations":0,
4025                         "rd_bytes":0,
4026                         "rd_operations":0
4027                         "flush_operations":0,
4028                         "wr_total_times_ns":0
4029                         "rd_total_times_ns":0
4030                         "flush_total_times_ns":0,
4031                         "rd_merged":0,
4032                         "wr_merged":0,
4033                         "account_invalid":false,
4034                         "account_failed":false
4035                      },
4036                      "qdev": "/machine/unattached/device[24]"
4037                   },
4038                   {
4039                      "device":"floppy0",
4040                      "stats":{
4041                         "wr_highest_offset":0,
4042                         "wr_bytes":0,
4043                         "wr_operations":0,
4044                         "rd_bytes":0,
4045                         "rd_operations":0
4046                         "flush_operations":0,
4047                         "wr_total_times_ns":0
4048                         "rd_total_times_ns":0
4049                         "flush_total_times_ns":0,
4050                         "rd_merged":0,
4051                         "wr_merged":0,
4052                         "account_invalid":false,
4053                         "account_failed":false
4054                      },
4055                      "qdev": "/machine/unattached/device[16]"
4056                   },
4057                   {
4058                      "device":"sd0",
4059                      "stats":{
4060                         "wr_highest_offset":0,
4061                         "wr_bytes":0,
4062                         "wr_operations":0,
4063                         "rd_bytes":0,
4064                         "rd_operations":0
4065                         "flush_operations":0,
4066                         "wr_total_times_ns":0
4067                         "rd_total_times_ns":0
4068                         "flush_total_times_ns":0,
4069                         "rd_merged":0,
4070                         "wr_merged":0,
4071                         "account_invalid":false,
4072                         "account_failed":false
4073                      }
4074                   }
4075                ]
4076             }
4077
4078   BlockdevOnError (Enum)
4079       An enumeration of possible behaviors for errors on I/O operations.  The
4080       exact meaning depends on whether the I/O was initiated by a guest or by
4081       a block job
4082
4083   Values
4084       report for guest operations, report the error to the guest;  for  jobs,
4085              cancel the job
4086
4087       ignore ignore  the  error,  only  report a QMP event (BLOCK_IO_ERROR or
4088              BLOCK_JOB_ERROR). The backup, mirror and commit block jobs retry
4089              the  failing  request later and may still complete successfully.
4090              The stream block job continues to stream and will complete  with
4091              an error.
4092
4093       enospc same as stop on ENOSPC, same as report otherwise.
4094
4095       stop   for  guest operations, stop the virtual machine; for jobs, pause
4096              the job
4097
4098       auto   inherit the error handling policy of the backend (since: 2.7)
4099
4100   Since
4101       1.3
4102
4103   MirrorSyncMode (Enum)
4104       An enumeration of possible behaviors for  the  initial  synchronization
4105       phase of storage mirroring.
4106
4107   Values
4108       top    copies data in the topmost image to the destination
4109
4110       full   copies data from all images to the destination
4111
4112       none   only copy data written from now on
4113
4114       incremental
4115              only copy data described by the dirty bitmap. (since: 2.4)
4116
4117       bitmap only  copy  data described by the dirty bitmap. (since: 4.2) Be‐
4118              havior on completion is determined by the BitmapSyncMode.
4119
4120   Since
4121       1.3
4122
4123   BitmapSyncMode (Enum)
4124       An enumeration of possible behaviors for the synchronization of a  bit‐
4125       map when used for data copy operations.
4126
4127   Values
4128       on-success
4129              The  bitmap  is  only  synced  when the operation is successful.
4130              This is the behavior always used for 'INCREMENTAL' backups.
4131
4132       never  The bitmap is never synchronized  with  the  operation,  and  is
4133              treated solely as a read-only manifest of blocks to copy.
4134
4135       always The bitmap is always synchronized with the operation, regardless
4136              of whether or not the operation was successful.
4137
4138   Since
4139       4.2
4140
4141   MirrorCopyMode (Enum)
4142       An enumeration whose values tell the mirror block job when  to  trigger
4143       writes to the target.
4144
4145   Values
4146       background
4147              copy data in background only.
4148
4149       write-blocking
4150              when  data is written to the source, write it (synchronously) to
4151              the target as well.  In addition, data is copied  in  background
4152              just like in background mode.
4153
4154   Since
4155       3.0
4156
4157   BlockJobInfo (Object)
4158       Information about a long-running block device operation.
4159
4160   Members
4161       type: string
4162              the job type ('stream' for image streaming)
4163
4164       device: string
4165              The  job identifier. Originally the device name but other values
4166              are allowed since QEMU 2.7
4167
4168       len: int
4169              Estimated offset value at the completion of the job. This  value
4170              can  arbitrarily change while the job is running, in both direc‐
4171              tions.
4172
4173       offset: int
4174              Progress made until now. The unit is arbitrary and the value can
4175              only  meaningfully  be  used for the ratio of offset to len. The
4176              value is monotonically increasing.
4177
4178       busy: boolean
4179              false if the job is known to be in a quiescent  state,  with  no
4180              pending I/O.  Since 1.3.
4181
4182       paused: boolean
4183              whether the job is paused or, if busy is true, will pause itself
4184              as soon as possible.  Since 1.3.
4185
4186       speed: int
4187              the rate limit, bytes per second
4188
4189       io-status: BlockDeviceIoStatus
4190              the status of the job (since 1.3)
4191
4192       ready: boolean
4193              true if the job may be completed (since 2.2)
4194
4195       status: JobStatus
4196              Current job state/status (since 2.12)
4197
4198       auto-finalize: boolean
4199              Job will finalize itself when PENDING, moving to  the  CONCLUDED
4200              state. (since 2.12)
4201
4202       auto-dismiss: boolean
4203              Job will dismiss itself when CONCLUDED, moving to the NULL state
4204              and disappearing from the query list. (since 2.12)
4205
4206       error: string (optional)
4207              Error information if the job did not complete successfully.  Not
4208              set if the job completed successfully. (since 2.12.1)
4209
4210   Since
4211       1.1
4212
4213   query-block-jobs (Command)
4214       Return information about long-running block device operations.
4215
4216   Returns
4217       a list of BlockJobInfo for each active block job
4218
4219   Since
4220       1.1
4221
4222   block_resize (Command)
4223       Resize a block image while a guest is running.
4224
4225       Either device or node-name must be set but not both.
4226
4227   Arguments
4228       device: string (optional)
4229              the name of the device to get the image resized
4230
4231       node-name: string (optional)
4232              graph node name to get the image resized (Since 2.0)
4233
4234       size: int
4235              new image size in bytes
4236
4237   Returns
4238       • nothing on success
4239
4240       • If device is not a valid block device, DeviceNotFound
4241
4242   Since
4243       0.14
4244
4245   Example
4246          -> { "execute": "block_resize",
4247               "arguments": { "device": "scratch", "size": 1073741824 } }
4248          <- { "return": {} }
4249
4250   NewImageMode (Enum)
4251       An  enumeration  that  tells QEMU how to set the backing file path in a
4252       new image file.
4253
4254   Values
4255       existing
4256              QEMU should look for an existing image file.
4257
4258       absolute-paths
4259              QEMU should create a new image with absolute paths for the back‐
4260              ing  file.  If there is no backing file available, the new image
4261              will not be backed either.
4262
4263   Since
4264       1.1
4265
4266   BlockdevSnapshotSync (Object)
4267       Either device or node-name must be set but not both.
4268
4269   Members
4270       device: string (optional)
4271              the name of the device to take a snapshot of.
4272
4273       node-name: string (optional)
4274              graph node name to generate the snapshot from (Since 2.0)
4275
4276       snapshot-file: string
4277              the target of the new overlay image. If the file exists,  or  if
4278              it  is  a  device,  the  overlay will be created in the existing
4279              file/device. Otherwise, a new file will be created.
4280
4281       snapshot-node-name: string (optional)
4282              the graph node name of the new image (Since 2.0)
4283
4284       format: string (optional)
4285              the format of the overlay image, default is 'qcow2'.
4286
4287       mode: NewImageMode (optional)
4288              whether and how QEMU should create a new image, default is  'ab‐
4289              solute-paths'.
4290
4291   BlockdevSnapshot (Object)
4292   Members
4293       node: string
4294              device or node name that will have a snapshot taken.
4295
4296       overlay: string
4297              reference  to  the  existing  block  device that will become the
4298              overlay of node, as part of taking the snapshot.   It  must  not
4299              have  a  current  backing  file (this can be achieved by passing
4300              "backing": null to blockdev-add).
4301
4302   Since
4303       2.5
4304
4305   BackupPerf (Object)
4306       Optional parameters for backup. These parameters don't affect function‐
4307       ality, but may significantly affect performance.
4308
4309   Members
4310       use-copy-range: boolean (optional)
4311              Use copy offloading. Default false.
4312
4313       max-workers: int (optional)
4314              Maximum number of parallel requests for the sustained background
4315              copying process. Doesn't influence copy-before-write operations.
4316              Default 64.
4317
4318       max-chunk: int (optional)
4319              Maximum  request  length  for  the  sustained background copying
4320              process.  Doesn't  influence  copy-before-write  operations.   0
4321              means  unlimited. If max-chunk is non-zero then it should not be
4322              less than job cluster size which is  calculated  as  maximum  of
4323              target image cluster size and 64k. Default 0.
4324
4325   Since
4326       6.0
4327
4328   BackupCommon (Object)
4329   Members
4330       job-id: string (optional)
4331              identifier  for the newly-created block job. If omitted, the de‐
4332              vice name will be used. (Since 2.7)
4333
4334       device: string
4335              the device name or node-name of a  root  node  which  should  be
4336              copied.
4337
4338       sync: MirrorSyncMode
4339              what parts of the disk image should be copied to the destination
4340              (all the disk, only the sectors allocated in the topmost  image,
4341              from a dirty bitmap, or only new I/O).
4342
4343       speed: int (optional)
4344              the  maximum  speed,  in bytes per second. The default is 0, for
4345              unlimited.
4346
4347       bitmap: string (optional)
4348              The name of a dirty bitmap to use.  Must be present if  sync  is
4349              "bitmap"  or "incremental".  Can be present if sync is "full" or
4350              "top".    Must   not   be   present   otherwise.    (Since   2.4
4351              (drive-backup), 3.1 (blockdev-backup))
4352
4353       bitmap-mode: BitmapSyncMode (optional)
4354              Specifies  the  type of data the bitmap should contain after the
4355              operation concludes.  Must be present if a bitmap was  provided,
4356              Must NOT be present otherwise. (Since 4.2)
4357
4358       compress: boolean (optional)
4359              true  to  compress data, if the target format supports it.  (de‐
4360              fault: false) (since 2.8)
4361
4362       on-source-error: BlockdevOnError (optional)
4363              the action to take on an error on the source, default  'report'.
4364              'stop'  and  'enospc'  can only be used if the block device sup‐
4365              ports io-status (see BlockInfo).
4366
4367       on-target-error: BlockdevOnError (optional)
4368              the action to take on an error on the target,  default  'report'
4369              (no  limitations, since this applies to a different block device
4370              than device).
4371
4372       auto-finalize: boolean (optional)
4373              When false, this job will wait in a PENDING state after  it  has
4374              finished  its work, waiting for block-job-finalize before making
4375              any block graph changes.  When true, this job will automatically
4376              perform  its  abort or commit actions.  Defaults to true. (Since
4377              2.12)
4378
4379       auto-dismiss: boolean (optional)
4380              When false, this job will wait in a CONCLUDED state after it has
4381              completely  ceased all work, and awaits block-job-dismiss.  When
4382              true, this job will automatically disappear from the query  list
4383              without user intervention.  Defaults to true. (Since 2.12)
4384
4385       filter-node-name: string (optional)
4386              the  node name that should be assigned to the filter driver that
4387              the backup job inserts into the graph above  node  specified  by
4388              drive.  If  this  option is not given, a node name is autogener‐
4389              ated. (Since: 4.2)
4390
4391       x-perf: BackupPerf (optional)
4392              Performance options. (Since 6.0)
4393
4394   Features
4395       unstable
4396              Member x-perf is experimental.
4397
4398   Note
4399       on-source-error and on-target-error only affect background I/O.  If  an
4400       error  occurs  during a guest write request, the device's rerror/werror
4401       actions will be used.
4402
4403   Since
4404       4.2
4405
4406   DriveBackup (Object)
4407   Members
4408       target: string
4409              the target of the new image. If the file exists, or if it  is  a
4410              device,  the existing file/device will be used as the new desti‐
4411              nation.  If it does not exist, a new file will be created.
4412
4413       format: string (optional)
4414              the format of the new destination, default is to probe  if  mode
4415              is 'existing', else the format of the source
4416
4417       mode: NewImageMode (optional)
4418              whether  and how QEMU should create a new image, default is 'ab‐
4419              solute-paths'.
4420
4421       The members of BackupCommon
4422
4423   Since
4424       1.6
4425
4426   BlockdevBackup (Object)
4427   Members
4428       target: string
4429              the device name or node-name of the backup target node.
4430
4431       The members of BackupCommon
4432
4433   Since
4434       2.3
4435
4436   blockdev-snapshot-sync (Command)
4437       Takes a synchronous snapshot of a block device.
4438
4439       For the arguments, see the documentation of BlockdevSnapshotSync.
4440
4441   Returns
4442       • nothing on success
4443
4444       • If device is not a valid block device, DeviceNotFound
4445
4446   Since
4447       0.14
4448
4449   Example
4450          -> { "execute": "blockdev-snapshot-sync",
4451               "arguments": { "device": "ide-hd0",
4452                              "snapshot-file":
4453                              "/some/place/my-image",
4454                              "format": "qcow2" } }
4455          <- { "return": {} }
4456
4457   blockdev-snapshot (Command)
4458       Takes a snapshot of a block device.
4459
4460       Take a snapshot, by installing 'node' as the backing  image  of  'over‐
4461       lay'.  Additionally,  if  'node' is associated with a block device, the
4462       block device changes to using 'overlay' as its new active image.
4463
4464       For the arguments, see the documentation of BlockdevSnapshot.
4465
4466   Features
4467       allow-write-only-overlay
4468              If present, the check whether this operation is safe was relaxed
4469              so  that  it can be used to change backing file of a destination
4470              of a blockdev-mirror.  (since 5.0)
4471
4472   Since
4473       2.5
4474
4475   Example
4476          -> { "execute": "blockdev-add",
4477               "arguments": { "driver": "qcow2",
4478                              "node-name": "node1534",
4479                              "file": { "driver": "file",
4480                                        "filename": "hd1.qcow2" },
4481                              "backing": null } }
4482
4483          <- { "return": {} }
4484
4485          -> { "execute": "blockdev-snapshot",
4486               "arguments": { "node": "ide-hd0",
4487                              "overlay": "node1534" } }
4488          <- { "return": {} }
4489
4490   change-backing-file (Command)
4491       Change the backing file in the image  file  metadata.   This  does  not
4492       cause QEMU to reopen the image file to reparse the backing filename (it
4493       may, however, perform a reopen to change permissions from r/o -> r/w ->
4494       r/o,  if needed). The new backing file string is written into the image
4495       file metadata, and the QEMU internal strings are updated.
4496
4497   Arguments
4498       image-node-name: string
4499              The name of the block driver state node of the image to  modify.
4500              The  "device" argument is used to verify "image-node-name" is in
4501              the chain described by "device".
4502
4503       device: string
4504              The device name or node-name of the  root  node  that  owns  im‐
4505              age-node-name.
4506
4507       backing-file: string
4508              The  string  to  write  as the backing file.  This string is not
4509              validated, so care should be taken when specifying the string or
4510              the image chain may not be able to be reopened again.
4511
4512   Returns
4513       • Nothing on success
4514
4515       • If "device" does not exist or cannot be determined, DeviceNotFound
4516
4517   Since
4518       2.1
4519
4520   block-commit (Command)
4521       Live commit of data from overlay image nodes into backing nodes - i.e.,
4522       writes data between 'top' and 'base' into 'base'.
4523
4524       If top == base, that is an error.  If top has no overlays on top of it,
4525       or  if  it  is in use by a writer, the job will not be completed by it‐
4526       self.  The user needs to complete the job with  the  block-job-complete
4527       command after getting the ready event. (Since 2.0)
4528
4529       If  the base image is smaller than top, then the base image will be re‐
4530       sized to be the same size as top.  If top is smaller than the base  im‐
4531       age,  the  base will not be truncated.  If you want the base image size
4532       to match the size of the smaller top, you can safely truncate it  your‐
4533       self once the commit operation successfully completes.
4534
4535   Arguments
4536       job-id: string (optional)
4537              identifier  for the newly-created block job. If omitted, the de‐
4538              vice name will be used. (Since 2.7)
4539
4540       device: string
4541              the device name or node-name of a root node
4542
4543       base-node: string (optional)
4544              The node name of the backing image to write data into.   If  not
4545              specified, this is the deepest backing image.  (since: 3.1)
4546
4547       base: string (optional)
4548              Same  as  base-node, except that it is a file name rather than a
4549              node name. This must be the exact filename string that was  used
4550              to  open  the  node;  other strings, even if addressing the same
4551              file, are not accepted
4552
4553       top-node: string (optional)
4554              The node name of the backing image within the image chain  which
4555              contains  the  topmost  data to be committed down. If not speci‐
4556              fied, this is the active layer. (since: 3.1)
4557
4558       top: string (optional)
4559              Same as top-node, except that it is a file name  rather  than  a
4560              node  name. This must be the exact filename string that was used
4561              to open the node; other strings, even  if  addressing  the  same
4562              file, are not accepted
4563
4564       backing-file: string (optional)
4565              The  backing  file  string  to  write  into the overlay image of
4566              'top'.  If 'top' does not have an overlay image, or if 'top'  is
4567              in  use  by a writer, specifying a backing file string is an er‐
4568              ror.
4569
4570              This filename is not validated.  If a pathname  string  is  such
4571              that  it  cannot be resolved by QEMU, that means that subsequent
4572              QMP or HMP commands must use node-names for the image  in  ques‐
4573              tion, as filename lookup methods will fail.
4574
4575              If  not specified, QEMU will automatically determine the backing
4576              file string to use, or error out if there is no obvious  choice.
4577              Care  should  be  taken when specifying the string, to specify a
4578              valid filename or protocol.  (Since 2.1)
4579
4580       speed: int (optional)
4581              the maximum speed, in bytes per second
4582
4583       on-error: BlockdevOnError (optional)
4584              the action to take on an error. 'ignore' means that the  request
4585              should be retried. (default: report; Since: 5.0)
4586
4587       filter-node-name: string (optional)
4588              the  node name that should be assigned to the filter driver that
4589              the commit job inserts into the graph above top. If this  option
4590              is not given, a node name is autogenerated. (Since: 2.9)
4591
4592       auto-finalize: boolean (optional)
4593              When  false,  this job will wait in a PENDING state after it has
4594              finished its work, waiting for block-job-finalize before  making
4595              any block graph changes.  When true, this job will automatically
4596              perform its abort or commit actions.  Defaults to  true.  (Since
4597              3.1)
4598
4599       auto-dismiss: boolean (optional)
4600              When false, this job will wait in a CONCLUDED state after it has
4601              completely ceased all work, and awaits block-job-dismiss.   When
4602              true,  this job will automatically disappear from the query list
4603              without user intervention.  Defaults to true. (Since 3.1)
4604
4605   Features
4606       deprecated
4607              Members base and top are deprecated.  Use base-node and top-node
4608              instead.
4609
4610   Returns
4611       • Nothing on success
4612
4613       • If device does not exist, DeviceNotFound
4614
4615       • Any other error returns a GenericError.
4616
4617   Since
4618       1.3
4619
4620   Example
4621          -> { "execute": "block-commit",
4622               "arguments": { "device": "virtio0",
4623                              "top": "/tmp/snap1.qcow2" } }
4624          <- { "return": {} }
4625
4626   drive-backup (Command)
4627       Start a point-in-time copy of a block device to a new destination.  The
4628       status  of  ongoing  drive-backup  operations  can  be   checked   with
4629       query-block-jobs  where  the  BlockJobInfo.type  field  has  the  value
4630       'backup'.  The operation can be stopped before it has  completed  using
4631       the block-job-cancel command.
4632
4633   Arguments
4634       The members of DriveBackup
4635
4636   Features
4637       deprecated
4638              This command is deprecated. Use blockdev-backup instead.
4639
4640   Returns
4641       • nothing on success
4642
4643       • If device is not a valid block device, GenericError
4644
4645   Since
4646       1.6
4647
4648   Example
4649          -> { "execute": "drive-backup",
4650               "arguments": { "device": "drive0",
4651                              "sync": "full",
4652                              "target": "backup.img" } }
4653          <- { "return": {} }
4654
4655   blockdev-backup (Command)
4656       Start a point-in-time copy of a block device to a new destination.  The
4657       status of  ongoing  blockdev-backup  operations  can  be  checked  with
4658       query-block-jobs  where  the  BlockJobInfo.type  field  has  the  value
4659       'backup'.  The operation can be stopped before it has  completed  using
4660       the block-job-cancel command.
4661
4662   Arguments
4663       The members of BlockdevBackup
4664
4665   Returns
4666       • nothing on success
4667
4668       • If device is not a valid block device, DeviceNotFound
4669
4670   Since
4671       2.3
4672
4673   Example
4674          -> { "execute": "blockdev-backup",
4675               "arguments": { "device": "src-id",
4676                              "sync": "full",
4677                              "target": "tgt-id" } }
4678          <- { "return": {} }
4679
4680   query-named-block-nodes (Command)
4681       Get the named block driver list
4682
4683   Arguments
4684       flat: boolean (optional)
4685              Omit  the  nested data about backing image ("backing-image" key)
4686              if true.  Default is false (Since 5.0)
4687
4688   Returns
4689       the list of BlockDeviceInfo
4690
4691   Since
4692       2.0
4693
4694   Example
4695          -> { "execute": "query-named-block-nodes" }
4696          <- { "return": [ { "ro":false,
4697                             "drv":"qcow2",
4698                             "encrypted":false,
4699                             "file":"disks/test.qcow2",
4700                             "node-name": "my-node",
4701                             "backing_file_depth":1,
4702                             "bps":1000000,
4703                             "bps_rd":0,
4704                             "bps_wr":0,
4705                             "iops":1000000,
4706                             "iops_rd":0,
4707                             "iops_wr":0,
4708                             "bps_max": 8000000,
4709                             "bps_rd_max": 0,
4710                             "bps_wr_max": 0,
4711                             "iops_max": 0,
4712                             "iops_rd_max": 0,
4713                             "iops_wr_max": 0,
4714                             "iops_size": 0,
4715                             "write_threshold": 0,
4716                             "image":{
4717                                "filename":"disks/test.qcow2",
4718                                "format":"qcow2",
4719                                "virtual-size":2048000,
4720                                "backing_file":"base.qcow2",
4721                                "full-backing-filename":"disks/base.qcow2",
4722                                "backing-filename-format":"qcow2",
4723                                "snapshots":[
4724                                   {
4725                                      "id": "1",
4726                                      "name": "snapshot1",
4727                                      "vm-state-size": 0,
4728                                      "date-sec": 10000200,
4729                                      "date-nsec": 12,
4730                                      "vm-clock-sec": 206,
4731                                      "vm-clock-nsec": 30
4732                                   }
4733                                ],
4734                                "backing-image":{
4735                                    "filename":"disks/base.qcow2",
4736                                    "format":"qcow2",
4737                                    "virtual-size":2048000
4738                                }
4739                             } } ] }
4740
4741   XDbgBlockGraphNodeType (Enum)
4742   Values
4743       block-backend
4744              corresponds to BlockBackend
4745
4746       block-job
4747              corresponds to BlockJob
4748
4749       block-driver
4750              corresponds to BlockDriverState
4751
4752   Since
4753       4.0
4754
4755   XDbgBlockGraphNode (Object)
4756   Members
4757       id: int
4758              Block graph node identifier. This id is generated only for x-de‐
4759              bug-query-block-graph  and  does not relate to any other identi‐
4760              fiers in Qemu.
4761
4762       type: XDbgBlockGraphNodeType
4763              Type of graph node. Can be one of  block-backend,  block-job  or
4764              block-driver-state.
4765
4766       name: string
4767              Human  readable  name  of the node. Corresponds to node-name for
4768              block-driver-state nodes; is not guaranteed to be unique in  the
4769              whole graph (with block-jobs and block-backends).
4770
4771   Since
4772       4.0
4773
4774   BlockPermission (Enum)
4775       Enum of base block permissions.
4776
4777   Values
4778       consistent-read
4779              A  user that has the "permission" of consistent reads is guaran‐
4780              teed that their view of the contents of the block device is com‐
4781              plete  and  self-consistent, representing the contents of a disk
4782              at a specific point.  For most block  devices  (including  their
4783              backing  files)  this  is true, but the property cannot be main‐
4784              tained in a few situations like for intermediate nodes of a com‐
4785              mit block job.
4786
4787       write  This permission is required to change the visible disk contents.
4788
4789       write-unchanged
4790              This  permission  (which  is weaker than BLK_PERM_WRITE) is both
4791              enough and required for writes to the block node when the caller
4792              promises  that  the visible disk content doesn't change.  As the
4793              BLK_PERM_WRITE permission is strictly stronger, either is suffi‐
4794              cient to perform an unchanging write.
4795
4796       resize This permission is required to change the size of a block node.
4797
4798       graph-mod
4799              This  permission  is  required  to  change  the  node  that this
4800              BdrvChild points to.
4801
4802   Since
4803       4.0
4804
4805   XDbgBlockGraphEdge (Object)
4806       Block Graph edge description for x-debug-query-block-graph.
4807
4808   Members
4809       parent: int
4810              parent id
4811
4812       child: int
4813              child id
4814
4815       name: string
4816              name of the relation (examples are 'file' and 'backing')
4817
4818       perm: array of BlockPermission
4819              granted permissions for the parent operating on the child
4820
4821       shared-perm: array of BlockPermission
4822              permissions that can still be granted  to  other  users  of  the
4823              child while it is still attached to this parent
4824
4825   Since
4826       4.0
4827
4828   XDbgBlockGraph (Object)
4829       Block Graph - list of nodes and list of edges.
4830
4831   Members
4832       nodes: array of XDbgBlockGraphNode
4833              Not documented
4834
4835       edges: array of XDbgBlockGraphEdge
4836              Not documented
4837
4838   Since
4839       4.0
4840
4841   x-debug-query-block-graph (Command)
4842       Get the block graph.
4843
4844   Features
4845       unstable
4846              This command is meant for debugging.
4847
4848   Since
4849       4.0
4850
4851   drive-mirror (Command)
4852       Start  mirroring  a  block device's writes to a new destination. target
4853       specifies the target of the new image. If the file exists, or if it  is
4854       a device, it will be used as the new destination for writes. If it does
4855       not exist, a new file will be created. format specifies the  format  of
4856       the mirror image, default is to probe if mode='existing', else the for‐
4857       mat of the source.
4858
4859   Arguments
4860       The members of DriveMirror
4861
4862   Returns
4863       • nothing on success
4864
4865       • If device is not a valid block device, GenericError
4866
4867   Since
4868       1.3
4869
4870   Example
4871          -> { "execute": "drive-mirror",
4872               "arguments": { "device": "ide-hd0",
4873                              "target": "/some/place/my-image",
4874                              "sync": "full",
4875                              "format": "qcow2" } }
4876          <- { "return": {} }
4877
4878   DriveMirror (Object)
4879       A set of parameters describing drive mirror setup.
4880
4881   Members
4882       job-id: string (optional)
4883              identifier for the newly-created block job. If omitted, the  de‐
4884              vice name will be used. (Since 2.7)
4885
4886       device: string
4887              the  device name or node-name of a root node whose writes should
4888              be mirrored.
4889
4890       target: string
4891              the target of the new image. If the file exists, or if it  is  a
4892              device,  the existing file/device will be used as the new desti‐
4893              nation.  If it does not exist, a new file will be created.
4894
4895       format: string (optional)
4896              the format of the new destination, default is to probe  if  mode
4897              is 'existing', else the format of the source
4898
4899       node-name: string (optional)
4900              the new block driver state node name in the graph (Since 2.1)
4901
4902       replaces: string (optional)
4903              with  sync=full  graph node name to be replaced by the new image
4904              when a whole image copy is done. This can be used to repair bro‐
4905              ken  Quorum files.  By default, device is replaced, although im‐
4906              plicitly created filters on it are kept. (Since 2.1)
4907
4908       mode: NewImageMode (optional)
4909              whether and how QEMU should create a new image, default is  'ab‐
4910              solute-paths'.
4911
4912       speed: int (optional)
4913              the maximum speed, in bytes per second
4914
4915       sync: MirrorSyncMode
4916              what parts of the disk image should be copied to the destination
4917              (all the disk, only the sectors allocated in the topmost  image,
4918              or only new I/O).
4919
4920       granularity: int (optional)
4921              granularity  of  the  dirty  bitmap, default is 64K if the image
4922              format doesn't have clusters, 4K if  the  clusters  are  smaller
4923              than  that, else the cluster size.  Must be a power of 2 between
4924              512 and 64M (since 1.4).
4925
4926       buf-size: int (optional)
4927              maximum amount of data in flight from source  to  target  (since
4928              1.4).
4929
4930       on-source-error: BlockdevOnError (optional)
4931              the  action to take on an error on the source, default 'report'.
4932              'stop' and 'enospc' can only be used if the  block  device  sup‐
4933              ports io-status (see BlockInfo).
4934
4935       on-target-error: BlockdevOnError (optional)
4936              the  action  to take on an error on the target, default 'report'
4937              (no limitations, since this applies to a different block  device
4938              than device).
4939
4940       unmap: boolean (optional)
4941              Whether  to  try  to  unmap target sectors where source has only
4942              zero. If true, and target unallocated sectors will read as zero,
4943              target image sectors will be unmapped; otherwise, zeroes will be
4944              written. Both will result in  identical  contents.   Default  is
4945              true. (Since 2.4)
4946
4947       copy-mode: MirrorCopyMode (optional)
4948              when  to  copy data to the destination; defaults to 'background'
4949              (Since: 3.0)
4950
4951       auto-finalize: boolean (optional)
4952              When false, this job will wait in a PENDING state after  it  has
4953              finished  its work, waiting for block-job-finalize before making
4954              any block graph changes.  When true, this job will automatically
4955              perform  its  abort or commit actions.  Defaults to true. (Since
4956              3.1)
4957
4958       auto-dismiss: boolean (optional)
4959              When false, this job will wait in a CONCLUDED state after it has
4960              completely  ceased all work, and awaits block-job-dismiss.  When
4961              true, this job will automatically disappear from the query  list
4962              without user intervention.  Defaults to true. (Since 3.1)
4963
4964   Since
4965       1.3
4966
4967   BlockDirtyBitmap (Object)
4968   Members
4969       node: string
4970              name of device/node which the bitmap is tracking
4971
4972       name: string
4973              name of the dirty bitmap
4974
4975   Since
4976       2.4
4977
4978   BlockDirtyBitmapAdd (Object)
4979   Members
4980       node: string
4981              name of device/node which the bitmap is tracking
4982
4983       name: string
4984              name of the dirty bitmap (must be less than 1024 bytes)
4985
4986       granularity: int (optional)
4987              the  bitmap  granularity,  default  is  64k for block-dirty-bit‐
4988              map-add
4989
4990       persistent: boolean (optional)
4991              the bitmap is persistent, i.e. it will be saved  to  the  corre‐
4992              sponding  block  device  image  file  on its close. For now only
4993              Qcow2 disks support persistent bitmaps.  Default  is  false  for
4994              block-dirty-bitmap-add. (Since: 2.10)
4995
4996       disabled: boolean (optional)
4997              the bitmap is created in the disabled state, which means that it
4998              will not track drive changes. The bitmap  may  be  enabled  with
4999              block-dirty-bitmap-enable. Default is false. (Since: 4.0)
5000
5001   Since
5002       2.4
5003
5004   BlockDirtyBitmapMergeSource (Alternate)
5005   Members
5006       local: string
5007              name of the bitmap, attached to the same node as target bitmap.
5008
5009       external: BlockDirtyBitmap
5010              bitmap with specified node
5011
5012   Since
5013       4.1
5014
5015   BlockDirtyBitmapMerge (Object)
5016   Members
5017       node: string
5018              name of device/node which the target bitmap is tracking
5019
5020       target: string
5021              name of the destination dirty bitmap
5022
5023       bitmaps: array of BlockDirtyBitmapMergeSource
5024              name(s) of the source dirty bitmap(s) at node and/or fully spec‐
5025              ified BlockDirtyBitmap elements. The latter are supported  since
5026              4.1.
5027
5028   Since
5029       4.0
5030
5031   block-dirty-bitmap-add (Command)
5032       Create  a  dirty bitmap with a name on the node, and start tracking the
5033       writes.
5034
5035   Returns
5036       • nothing on success
5037
5038       • If node is not a valid block device or node, DeviceNotFound
5039
5040       • If name is already taken, GenericError with an explanation
5041
5042   Since
5043       2.4
5044
5045   Example
5046          -> { "execute": "block-dirty-bitmap-add",
5047               "arguments": { "node": "drive0", "name": "bitmap0" } }
5048          <- { "return": {} }
5049
5050   block-dirty-bitmap-remove (Command)
5051       Stop write tracking and remove the dirty bitmap that was  created  with
5052       block-dirty-bitmap-add. If the bitmap is persistent, remove it from its
5053       storage too.
5054
5055   Returns
5056       • nothing on success
5057
5058       • If node is not a valid block device or node, DeviceNotFound
5059
5060       • If name is not found, GenericError with an explanation
5061
5062       • if name is frozen by an operation, GenericError
5063
5064   Since
5065       2.4
5066
5067   Example
5068          -> { "execute": "block-dirty-bitmap-remove",
5069               "arguments": { "node": "drive0", "name": "bitmap0" } }
5070          <- { "return": {} }
5071
5072   block-dirty-bitmap-clear (Command)
5073       Clear (reset) a dirty bitmap on the  device,  so  that  an  incremental
5074       backup  from this point in time forward will only backup clusters modi‐
5075       fied after this clear operation.
5076
5077   Returns
5078       • nothing on success
5079
5080       • If node is not a valid block device, DeviceNotFound
5081
5082       • If name is not found, GenericError with an explanation
5083
5084   Since
5085       2.4
5086
5087   Example
5088          -> { "execute": "block-dirty-bitmap-clear",
5089               "arguments": { "node": "drive0", "name": "bitmap0" } }
5090          <- { "return": {} }
5091
5092   block-dirty-bitmap-enable (Command)
5093       Enables a dirty bitmap so that it will begin tracking disk changes.
5094
5095   Returns
5096       • nothing on success
5097
5098       • If node is not a valid block device, DeviceNotFound
5099
5100       • If name is not found, GenericError with an explanation
5101
5102   Since
5103       4.0
5104
5105   Example
5106          -> { "execute": "block-dirty-bitmap-enable",
5107               "arguments": { "node": "drive0", "name": "bitmap0" } }
5108          <- { "return": {} }
5109
5110   block-dirty-bitmap-disable (Command)
5111       Disables a dirty bitmap so that it will stop tracking disk changes.
5112
5113   Returns
5114       • nothing on success
5115
5116       • If node is not a valid block device, DeviceNotFound
5117
5118       • If name is not found, GenericError with an explanation
5119
5120   Since
5121       4.0
5122
5123   Example
5124          -> { "execute": "block-dirty-bitmap-disable",
5125               "arguments": { "node": "drive0", "name": "bitmap0" } }
5126          <- { "return": {} }
5127
5128   block-dirty-bitmap-merge (Command)
5129       Merge dirty bitmaps listed in  bitmaps  to  the  target  dirty  bitmap.
5130       Dirty  bitmaps  in bitmaps will be unchanged, except if it also appears
5131       as the target bitmap. Any bits already set in target will still be  set
5132       after  the  merge,  i.e., this operation does not clear the target.  On
5133       error, target is unchanged.
5134
5135       The resulting bitmap will count as dirty any clusters that  were  dirty
5136       in any of the source bitmaps. This can be used to achieve backup check‐
5137       points, or in simpler usages, to copy bitmaps.
5138
5139   Returns
5140       • nothing on success
5141
5142       • If node is not a valid block device, DeviceNotFound
5143
5144       • If any bitmap in bitmaps or target is not found, GenericError
5145
5146       • If any of the bitmaps have different sizes or  granularities,  Gener‐
5147         icError
5148
5149   Since
5150       4.0
5151
5152   Example
5153          -> { "execute": "block-dirty-bitmap-merge",
5154               "arguments": { "node": "drive0", "target": "bitmap0",
5155                              "bitmaps": ["bitmap1"] } }
5156          <- { "return": {} }
5157
5158   BlockDirtyBitmapSha256 (Object)
5159       SHA256 hash of dirty bitmap data
5160
5161   Members
5162       sha256: string
5163              ASCII representation of SHA256 bitmap hash
5164
5165   Since
5166       2.10
5167
5168   x-debug-block-dirty-bitmap-sha256 (Command)
5169       Get bitmap SHA256.
5170
5171   Features
5172       unstable
5173              This command is meant for debugging.
5174
5175   Returns
5176       • BlockDirtyBitmapSha256 on success
5177
5178       • If node is not a valid block device, DeviceNotFound
5179
5180       • If  name  is not found or if hashing has failed, GenericError with an
5181         explanation
5182
5183   Since
5184       2.10
5185
5186   blockdev-mirror (Command)
5187       Start mirroring a block device's writes to a new destination.
5188
5189   Arguments
5190       job-id: string (optional)
5191              identifier for the newly-created block job. If omitted, the  de‐
5192              vice name will be used. (Since 2.7)
5193
5194       device: string
5195              The  device name or node-name of a root node whose writes should
5196              be mirrored.
5197
5198       target: string
5199              the id or node-name of the  block  device  to  mirror  to.  This
5200              mustn't be attached to guest.
5201
5202       replaces: string (optional)
5203              with  sync=full  graph node name to be replaced by the new image
5204              when a whole image copy is done. This can be used to repair bro‐
5205              ken  Quorum files.  By default, device is replaced, although im‐
5206              plicitly created filters on it are kept.
5207
5208       speed: int (optional)
5209              the maximum speed, in bytes per second
5210
5211       sync: MirrorSyncMode
5212              what parts of the disk image should be copied to the destination
5213              (all  the disk, only the sectors allocated in the topmost image,
5214              or only new I/O).
5215
5216       granularity: int (optional)
5217              granularity of the dirty bitmap, default is  64K  if  the  image
5218              format  doesn't  have  clusters,  4K if the clusters are smaller
5219              than that, else the cluster size.  Must be a power of 2  between
5220              512 and 64M
5221
5222       buf-size: int (optional)
5223              maximum amount of data in flight from source to target
5224
5225       on-source-error: BlockdevOnError (optional)
5226              the  action to take on an error on the source, default 'report'.
5227              'stop' and 'enospc' can only be used if the  block  device  sup‐
5228              ports io-status (see BlockInfo).
5229
5230       on-target-error: BlockdevOnError (optional)
5231              the  action  to take on an error on the target, default 'report'
5232              (no limitations, since this applies to a different block  device
5233              than device).
5234
5235       filter-node-name: string (optional)
5236              the  node name that should be assigned to the filter driver that
5237              the mirror job inserts into the graph above device. If this  op‐
5238              tion is not given, a node name is autogenerated. (Since: 2.9)
5239
5240       copy-mode: MirrorCopyMode (optional)
5241              when  to  copy data to the destination; defaults to 'background'
5242              (Since: 3.0)
5243
5244       auto-finalize: boolean (optional)
5245              When false, this job will wait in a PENDING state after  it  has
5246              finished  its work, waiting for block-job-finalize before making
5247              any block graph changes.  When true, this job will automatically
5248              perform  its  abort or commit actions.  Defaults to true. (Since
5249              3.1)
5250
5251       auto-dismiss: boolean (optional)
5252              When false, this job will wait in a CONCLUDED state after it has
5253              completely  ceased all work, and awaits block-job-dismiss.  When
5254              true, this job will automatically disappear from the query  list
5255              without user intervention.  Defaults to true. (Since 3.1)
5256
5257   Returns
5258       nothing on success.
5259
5260   Since
5261       2.6
5262
5263   Example
5264          -> { "execute": "blockdev-mirror",
5265               "arguments": { "device": "ide-hd0",
5266                              "target": "target0",
5267                              "sync": "full" } }
5268          <- { "return": {} }
5269
5270   BlockIOThrottle (Object)
5271       A set of parameters describing block throttling.
5272
5273   Members
5274       device: string (optional)
5275              Block device name
5276
5277       id: string (optional)
5278              The name or QOM path of the guest device (since: 2.8)
5279
5280       bps: int
5281              total throughput limit in bytes per second
5282
5283       bps_rd: int
5284              read throughput limit in bytes per second
5285
5286       bps_wr: int
5287              write throughput limit in bytes per second
5288
5289       iops: int
5290              total I/O operations per second
5291
5292       iops_rd: int
5293              read I/O operations per second
5294
5295       iops_wr: int
5296              write I/O operations per second
5297
5298       bps_max: int (optional)
5299              total throughput limit during bursts, in bytes (Since 1.7)
5300
5301       bps_rd_max: int (optional)
5302              read throughput limit during bursts, in bytes (Since 1.7)
5303
5304       bps_wr_max: int (optional)
5305              write throughput limit during bursts, in bytes (Since 1.7)
5306
5307       iops_max: int (optional)
5308              total  I/O  operations per second during bursts, in bytes (Since
5309              1.7)
5310
5311       iops_rd_max: int (optional)
5312              read I/O operations per second during bursts,  in  bytes  (Since
5313              1.7)
5314
5315       iops_wr_max: int (optional)
5316              write  I/O  operations per second during bursts, in bytes (Since
5317              1.7)
5318
5319       bps_max_length: int (optional)
5320              maximum length of the bps_max burst period, in seconds. It  must
5321              only  be  set  if bps_max is set as well.  Defaults to 1. (Since
5322              2.6)
5323
5324       bps_rd_max_length: int (optional)
5325              maximum length of the bps_rd_max burst period,  in  seconds.  It
5326              must  only  be set if bps_rd_max is set as well.  Defaults to 1.
5327              (Since 2.6)
5328
5329       bps_wr_max_length: int (optional)
5330              maximum length of the bps_wr_max burst period,  in  seconds.  It
5331              must  only  be set if bps_wr_max is set as well.  Defaults to 1.
5332              (Since 2.6)
5333
5334       iops_max_length: int (optional)
5335              maximum length of the iops burst period,  in  seconds.  It  must
5336              only  be  set if iops_max is set as well.  Defaults to 1. (Since
5337              2.6)
5338
5339       iops_rd_max_length: int (optional)
5340              maximum length of the iops_rd_max burst period, in  seconds.  It
5341              must  only be set if iops_rd_max is set as well.  Defaults to 1.
5342              (Since 2.6)
5343
5344       iops_wr_max_length: int (optional)
5345              maximum length of the iops_wr_max burst period, in  seconds.  It
5346              must  only be set if iops_wr_max is set as well.  Defaults to 1.
5347              (Since 2.6)
5348
5349       iops_size: int (optional)
5350              an I/O size in bytes (Since 1.7)
5351
5352       group: string (optional)
5353              throttle group name (Since 2.4)
5354
5355   Features
5356       deprecated
5357              Member device is deprecated.  Use id instead.
5358
5359   Since
5360       1.1
5361
5362   ThrottleLimits (Object)
5363       Limit parameters for throttling.  Since some limit combinations are il‐
5364       legal,  limits  should always be set in one transaction. All fields are
5365       optional. When setting limits, if a field is missing the current  value
5366       is not changed.
5367
5368   Members
5369       iops-total: int (optional)
5370              limit total I/O operations per second
5371
5372       iops-total-max: int (optional)
5373              I/O operations burst
5374
5375       iops-total-max-length: int (optional)
5376              length  of  the  iops-total-max burst period, in seconds It must
5377              only be set if iops-total-max is set as well.
5378
5379       iops-read: int (optional)
5380              limit read operations per second
5381
5382       iops-read-max: int (optional)
5383              I/O operations read burst
5384
5385       iops-read-max-length: int (optional)
5386              length of the iops-read-max burst period,  in  seconds  It  must
5387              only be set if iops-read-max is set as well.
5388
5389       iops-write: int (optional)
5390              limit write operations per second
5391
5392       iops-write-max: int (optional)
5393              I/O operations write burst
5394
5395       iops-write-max-length: int (optional)
5396              length  of  the  iops-write-max burst period, in seconds It must
5397              only be set if iops-write-max is set as well.
5398
5399       bps-total: int (optional)
5400              limit total bytes per second
5401
5402       bps-total-max: int (optional)
5403              total bytes burst
5404
5405       bps-total-max-length: int (optional)
5406              length of the bps-total-max burst period, in seconds.   It  must
5407              only be set if bps-total-max is set as well.
5408
5409       bps-read: int (optional)
5410              limit read bytes per second
5411
5412       bps-read-max: int (optional)
5413              total bytes read burst
5414
5415       bps-read-max-length: int (optional)
5416              length of the bps-read-max burst period, in seconds It must only
5417              be set if bps-read-max is set as well.
5418
5419       bps-write: int (optional)
5420              limit write bytes per second
5421
5422       bps-write-max: int (optional)
5423              total bytes write burst
5424
5425       bps-write-max-length: int (optional)
5426              length of the bps-write-max burst period,  in  seconds  It  must
5427              only be set if bps-write-max is set as well.
5428
5429       iops-size: int (optional)
5430              when limiting by iops max size of an I/O in bytes
5431
5432   Since
5433       2.11
5434
5435   ThrottleGroupProperties (Object)
5436       Properties for throttle-group objects.
5437
5438   Members
5439       limits: ThrottleLimits (optional)
5440              limits to apply for this throttle group
5441
5442       x-iops-total: int (optional)
5443              Not documented
5444
5445       x-iops-total-max: int (optional)
5446              Not documented
5447
5448       x-iops-total-max-length: int (optional)
5449              Not documented
5450
5451       x-iops-read: int (optional)
5452              Not documented
5453
5454       x-iops-read-max: int (optional)
5455              Not documented
5456
5457       x-iops-read-max-length: int (optional)
5458              Not documented
5459
5460       x-iops-write: int (optional)
5461              Not documented
5462
5463       x-iops-write-max: int (optional)
5464              Not documented
5465
5466       x-iops-write-max-length: int (optional)
5467              Not documented
5468
5469       x-bps-total: int (optional)
5470              Not documented
5471
5472       x-bps-total-max: int (optional)
5473              Not documented
5474
5475       x-bps-total-max-length: int (optional)
5476              Not documented
5477
5478       x-bps-read: int (optional)
5479              Not documented
5480
5481       x-bps-read-max: int (optional)
5482              Not documented
5483
5484       x-bps-read-max-length: int (optional)
5485              Not documented
5486
5487       x-bps-write: int (optional)
5488              Not documented
5489
5490       x-bps-write-max: int (optional)
5491              Not documented
5492
5493       x-bps-write-max-length: int (optional)
5494              Not documented
5495
5496       x-iops-size: int (optional)
5497              Not documented
5498
5499   Features
5500       unstable
5501              All  members starting with x- are aliases for the same key with‐
5502              out x- in the limits object.  This is not a stable interface and
5503              may  be removed or changed incompatibly in the future.  Use lim‐
5504              its for a supported stable interface.
5505
5506   Since
5507       2.11
5508
5509   block-stream (Command)
5510       Copy data from a backing file into a block device.
5511
5512       The block streaming operation is performed in the background until  the
5513       entire  backing file has been copied.  This command returns immediately
5514       once streaming has started.  The status of ongoing block streaming  op‐
5515       erations  can  be  checked with query-block-jobs.  The operation can be
5516       stopped before it has completed using the block-job-cancel command.
5517
5518       The node that receives the data is called the top image, can be located
5519       in  any  part of the chain (but always above the base image; see below)
5520       and can be specified using its device or node name. Earlier  qemu  ver‐
5521       sions only allowed 'device' to name the top level node; presence of the
5522       'base-node' parameter during introspection can be used as a witness  of
5523       the enhanced semantics of 'device'.
5524
5525       If  a base file is specified then sectors are not copied from that base
5526       file and its backing chain.  This can be used to stream a subset of the
5527       backing  file  chain  instead  of  flattening  the  entire image.  When
5528       streaming completes the image file will have the base file as its back‐
5529       ing  file,  unless that node was changed while the job was running.  In
5530       that case, base's parent's  backing  (or  filtered,  whichever  exists)
5531       child  (i.e., base at the beginning of the job) will be the new backing
5532       file.
5533
5534       On successful completion the image file is updated to drop the  backing
5535       file and the BLOCK_JOB_COMPLETED event is emitted.
5536
5537       In  case  device  is  a  filter  node,  block-stream modifies the first
5538       non-filter overlay node below it to point to the new backing  node  in‐
5539       stead of modifying device itself.
5540
5541   Arguments
5542       job-id: string (optional)
5543              identifier  for the newly-created block job. If omitted, the de‐
5544              vice name will be used. (Since 2.7)
5545
5546       device: string
5547              the device or node name of the top image
5548
5549       base: string (optional)
5550              the common backing file name.  It cannot be set if base-node  or
5551              bottom is also set.
5552
5553       base-node: string (optional)
5554              the  node name of the backing file.  It cannot be set if base or
5555              bottom is also set. (Since 2.8)
5556
5557       bottom: string (optional)
5558              the last node in the chain that should be streamed into top.  It
5559              cannot  be  set  if base or base-node is also set.  It cannot be
5560              filter node. (Since 6.0)
5561
5562       backing-file: string (optional)
5563              The backing file string to write into the top image. This  file‐
5564              name is not validated.
5565
5566              If a pathname string is such that it cannot be resolved by QEMU,
5567              that  means  that  subsequent  QMP  or  HMP  commands  must  use
5568              node-names for the image in question, as filename lookup methods
5569              will fail.
5570
5571              If not specified, QEMU will automatically determine the  backing
5572              file  string to use, or error out if there is no obvious choice.
5573              Care should be taken when specifying the string,  to  specify  a
5574              valid filename or protocol.  (Since 2.1)
5575
5576       speed: int (optional)
5577              the maximum speed, in bytes per second
5578
5579       on-error: BlockdevOnError (optional)
5580              the  action  to  take  on an error (default report).  'stop' and
5581              'enospc' can only be used if the block device supports io-status
5582              (see BlockInfo).  Since 1.3.
5583
5584       filter-node-name: string (optional)
5585              the  node name that should be assigned to the filter driver that
5586              the stream job inserts into the graph above device. If this  op‐
5587              tion is not given, a node name is autogenerated. (Since: 6.0)
5588
5589       auto-finalize: boolean (optional)
5590              When  false,  this job will wait in a PENDING state after it has
5591              finished its work, waiting for block-job-finalize before  making
5592              any block graph changes.  When true, this job will automatically
5593              perform its abort or commit actions.  Defaults to  true.  (Since
5594              3.1)
5595
5596       auto-dismiss: boolean (optional)
5597              When false, this job will wait in a CONCLUDED state after it has
5598              completely ceased all work, and awaits block-job-dismiss.   When
5599              true,  this job will automatically disappear from the query list
5600              without user intervention.  Defaults to true. (Since 3.1)
5601
5602   Returns
5603       • Nothing on success.
5604
5605       • If device does not exist, DeviceNotFound.
5606
5607   Since
5608       1.1
5609
5610   Example
5611          -> { "execute": "block-stream",
5612               "arguments": { "device": "virtio0",
5613                              "base": "/tmp/master.qcow2" } }
5614          <- { "return": {} }
5615
5616   block-job-set-speed (Command)
5617       Set maximum speed for a background block operation.
5618
5619       This command can only be issued when there is an active block job.
5620
5621       Throttling can be disabled by setting the speed to 0.
5622
5623   Arguments
5624       device: string
5625              The job identifier. This used to be a  device  name  (hence  the
5626              name  of  the  parameter),  but since QEMU 2.7 it can have other
5627              values.
5628
5629       speed: int
5630              the maximum speed, in bytes per second, or 0 for unlimited.  De‐
5631              faults to 0.
5632
5633   Returns
5634       • Nothing on success
5635
5636       • If no background operation is active on this device, DeviceNotActive
5637
5638   Since
5639       1.1
5640
5641   block-job-cancel (Command)
5642       Stop an active background block operation.
5643
5644       This  command  returns  immediately after marking the active background
5645       block operation for cancellation.  It is an error to call this  command
5646       if no operation is in progress.
5647
5648       The  operation  will  cancel  as  soon  as  possible  and then emit the
5649       BLOCK_JOB_CANCELLED event.  Before that happens the job is still  visi‐
5650       ble when enumerated using query-block-jobs.
5651
5652       Note  that if you issue 'block-job-cancel' after 'drive-mirror' has in‐
5653       dicated (via the event BLOCK_JOB_READY) that the source and destination
5654       are  synchronized,  then the event triggered by this command changes to
5655       BLOCK_JOB_COMPLETED, to indicate that the mirroring has ended  and  the
5656       destination  now  has a point-in-time copy tied to the time of the can‐
5657       cellation.
5658
5659       For streaming, the image file  retains  its  backing  file  unless  the
5660       streaming  operation happens to complete just as it is being cancelled.
5661       A new streaming operation can be started at  a  later  time  to  finish
5662       copying all data from the backing file.
5663
5664   Arguments
5665       device: string
5666              The  job  identifier.  This  used to be a device name (hence the
5667              name of the parameter), but since QEMU 2.7  it  can  have  other
5668              values.
5669
5670       force: boolean (optional)
5671              If   true,   and   the   job   has  already  emitted  the  event
5672              BLOCK_JOB_READY, abandon the job  immediately  (even  if  it  is
5673              paused)  instead  of waiting for the destination to complete its
5674              final synchronization (since 1.3)
5675
5676   Returns
5677       • Nothing on success
5678
5679       • If no background operation is active on this device, DeviceNotActive
5680
5681   Since
5682       1.1
5683
5684   block-job-pause (Command)
5685       Pause an active background block operation.
5686
5687       This command returns immediately after marking  the  active  background
5688       block operation for pausing.  It is an error to call this command if no
5689       operation is in progress or if the job is already paused.
5690
5691       The operation will pause as soon as possible.  No event is emitted when
5692       the  operation  is  actually paused.  Cancelling a paused job automati‐
5693       cally resumes it.
5694
5695   Arguments
5696       device: string
5697              The job identifier. This used to be a  device  name  (hence  the
5698              name  of  the  parameter),  but since QEMU 2.7 it can have other
5699              values.
5700
5701   Returns
5702       • Nothing on success
5703
5704       • If no background operation is active on this device, DeviceNotActive
5705
5706   Since
5707       1.3
5708
5709   block-job-resume (Command)
5710       Resume an active background block operation.
5711
5712       This command returns immediately after  resuming  a  paused  background
5713       block  operation.   It is an error to call this command if no operation
5714       is in progress or if the job is not paused.
5715
5716       This command also clears the error status of the job.
5717
5718   Arguments
5719       device: string
5720              The job identifier. This used to be a  device  name  (hence  the
5721              name  of  the  parameter),  but since QEMU 2.7 it can have other
5722              values.
5723
5724   Returns
5725       • Nothing on success
5726
5727       • If no background operation is active on this device, DeviceNotActive
5728
5729   Since
5730       1.3
5731
5732   block-job-complete (Command)
5733       Manually trigger completion of an active  background  block  operation.
5734       This  is  supported for drive mirroring, where it also switches the de‐
5735       vice to write to the target path only.  The ability to complete is sig‐
5736       naled with a BLOCK_JOB_READY event.
5737
5738       This  command  completes  an  active  background  block  operation syn‐
5739       chronously.   The  ordering  of  this   command's   return   with   the
5740       BLOCK_JOB_COMPLETED  event  is  not defined.  Note that if an I/O error
5741       occurs during the processing of this command:  1)  the  command  itself
5742       will  fail; 2) the error will be processed according to the rerror/wer‐
5743       ror arguments that were specified when starting the operation.
5744
5745       A cancelled or paused job cannot be completed.
5746
5747   Arguments
5748       device: string
5749              The job identifier. This used to be a  device  name  (hence  the
5750              name  of  the  parameter),  but since QEMU 2.7 it can have other
5751              values.
5752
5753   Returns
5754       • Nothing on success
5755
5756       • If no background operation is active on this device, DeviceNotActive
5757
5758   Since
5759       1.3
5760
5761   block-job-dismiss (Command)
5762       For  jobs  that  have  already  concluded,   remove   them   from   the
5763       block-job-query  list. This command only needs to be run for jobs which
5764       were started with QEMU 2.12+ job lifetime management semantics.
5765
5766       This command will refuse to operate on any job that has not yet reached
5767       its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of the
5768       BLOCK_JOB_READY  event,  block-job-cancel  or  block-job-complete  will
5769       still need to be used as appropriate.
5770
5771   Arguments
5772       id: string
5773              The job identifier.
5774
5775   Returns
5776       Nothing on success
5777
5778   Since
5779       2.12
5780
5781   block-job-finalize (Command)
5782       Once  a  job  that has manual=true reaches the pending state, it can be
5783       instructed to finalize any graph changes and do any  necessary  cleanup
5784       via  this  command.   For jobs in a transaction, instructing one job to
5785       finalize will force ALL jobs in the transaction to finalize, so  it  is
5786       only necessary to instruct a single member job to finalize.
5787
5788   Arguments
5789       id: string
5790              The job identifier.
5791
5792   Returns
5793       Nothing on success
5794
5795   Since
5796       2.12
5797
5798   BlockdevDiscardOptions (Enum)
5799       Determines how to handle discard requests.
5800
5801   Values
5802       ignore Ignore the request
5803
5804       unmap  Forward as an unmap request
5805
5806   Since
5807       2.9
5808
5809   BlockdevDetectZeroesOptions (Enum)
5810       Describes the operation mode for the automatic conversion of plain zero
5811       writes by the OS to driver specific optimized zero write commands.
5812
5813   Values
5814       off    Disabled (default)
5815
5816       on     Enabled
5817
5818       unmap  Enabled and even try to unmap blocks if possible. This  requires
5819              also  that  BlockdevDiscardOptions  is set to unmap for this de‐
5820              vice.
5821
5822   Since
5823       2.1
5824
5825   BlockdevAioOptions (Enum)
5826       Selects the AIO backend to handle I/O requests
5827
5828   Values
5829       threads
5830              Use qemu's thread pool
5831
5832       native Use native AIO backend (only Linux and Windows)
5833
5834       io_uring (If: CONFIG_LINUX_IO_URING)
5835              Use linux io_uring (since 5.0)
5836
5837   Since
5838       2.9
5839
5840   BlockdevCacheOptions (Object)
5841       Includes cache-related options for block devices
5842
5843   Members
5844       direct: boolean (optional)
5845              enables use of O_DIRECT (bypass the host  page  cache;  default:
5846              false)
5847
5848       no-flush: boolean (optional)
5849              ignore any flush requests for the device (default: false)
5850
5851   Since
5852       2.9
5853
5854   BlockdevDriver (Enum)
5855       Drivers that are supported in block device operations.
5856
5857   Values
5858       throttle
5859              Since 2.11
5860
5861       nvme   Since 2.12
5862
5863       copy-on-read
5864              Since 3.0
5865
5866       blklogwrites
5867              Since 3.0
5868
5869       blkreplay
5870              Since 4.2
5871
5872       compress
5873              Since 5.0
5874
5875       copy-before-write
5876              Since 6.2
5877
5878       blkdebug
5879              Not documented
5880
5881       blkverify
5882              Not documented
5883
5884       bochs  Not documented
5885
5886       cloop  Not documented
5887
5888       dmg    Not documented
5889
5890       file   Not documented
5891
5892       ftp    Not documented
5893
5894       ftps   Not documented
5895
5896       gluster
5897              Not documented
5898
5899       host_cdrom (If: HAVE_HOST_BLOCK_DEVICE)
5900              Not documented
5901
5902       host_device (If: HAVE_HOST_BLOCK_DEVICE)
5903              Not documented
5904
5905       http   Not documented
5906
5907       https  Not documented
5908
5909       iscsi  Not documented
5910
5911       luks   Not documented
5912
5913       nbd    Not documented
5914
5915       nfs    Not documented
5916
5917       null-aio
5918              Not documented
5919
5920       null-co
5921              Not documented
5922
5923       parallels
5924              Not documented
5925
5926       preallocate
5927              Not documented
5928
5929       qcow   Not documented
5930
5931       qcow2  Not documented
5932
5933       qed    Not documented
5934
5935       quorum Not documented
5936
5937       raw    Not documented
5938
5939       rbd    Not documented
5940
5941       replication (If: CONFIG_REPLICATION)
5942              Not documented
5943
5944       ssh    Not documented
5945
5946       vdi    Not documented
5947
5948       vhdx   Not documented
5949
5950       vmdk   Not documented
5951
5952       vpc    Not documented
5953
5954       vvfat  Not documented
5955
5956   Since
5957       2.9
5958
5959   BlockdevOptionsFile (Object)
5960       Driver specific block device options for the file backend.
5961
5962   Members
5963       filename: string
5964              path to the image file
5965
5966       pr-manager: string (optional)
5967              the  id  for the object that will handle persistent reservations
5968              for this device (default: none, forward the commands via  SG_IO;
5969              since 2.11)
5970
5971       aio: BlockdevAioOptions (optional)
5972              AIO backend (default: threads) (since: 2.8)
5973
5974       aio-max-batch: int (optional)
5975              maximum  number of requests to batch together into a single sub‐
5976              mission in the AIO backend. The smallest value between this  and
5977              the  aio-max-batch  value  of  the IOThread object is chosen.  0
5978              means that the AIO backend will handle it  automatically.   (de‐
5979              fault: 0, since 6.2)
5980
5981       locking: OnOffAuto (optional)
5982              whether  to  enable  file locking. If set to 'auto', only enable
5983              when Open File Descriptor (OFD) locking API  is  available  (de‐
5984              fault: auto, since 2.10)
5985
5986       drop-cache: boolean (optional) (If: CONFIG_LINUX)
5987              invalidate  page  cache  during  live  migration.  This prevents
5988              stale data on the migration destination  with  cache.direct=off.
5989              Currently  only  supported on Linux hosts.  (default: on, since:
5990              4.0)
5991
5992       x-check-cache-dropped: boolean (optional)
5993              whether to check that page cache was dropped on live  migration.
5994              May  cause  noticeable delays if the image file is large, do not
5995              use in production.  (default: off) (since: 3.0)
5996
5997   Features
5998       dynamic-auto-read-only
5999              If present, enabled auto-read-only means that  the  driver  will
6000              open  the image read-only at first, dynamically reopen the image
6001              file read-write when the first writer is attached  to  the  node
6002              and  reopen read-only when the last writer is detached. This al‐
6003              lows giving QEMU write permissions only on demand when an opera‐
6004              tion actually needs write access.
6005
6006       unstable
6007              Member x-check-cache-dropped is meant for debugging.
6008
6009   Since
6010       2.9
6011
6012   BlockdevOptionsNull (Object)
6013       Driver specific block device options for the null backend.
6014
6015   Members
6016       size: int (optional)
6017              size of the device in bytes.
6018
6019       latency-ns: int (optional)
6020              emulated  latency  (in  nanoseconds) in processing requests. De‐
6021              fault to zero which completes requests immediately.  (Since 2.4)
6022
6023       read-zeroes: boolean (optional)
6024              if true, reads from the device produce  zeroes;  if  false,  the
6025              buffer is left unchanged. (default: false; since: 4.1)
6026
6027   Since
6028       2.9
6029
6030   BlockdevOptionsNVMe (Object)
6031       Driver specific block device options for the NVMe backend.
6032
6033   Members
6034       device: string
6035              PCI controller address of the NVMe device in format hhhh:bb:ss.f
6036              (host:bus:slot.function)
6037
6038       namespace: int
6039              namespace number of the device, starting from 1.
6040       Note that the PCI device must have been unbound from  any  host  kernel
6041       driver before instructing QEMU to add the blockdev.
6042
6043   Since
6044       2.12
6045
6046   BlockdevOptionsVVFAT (Object)
6047       Driver specific block device options for the vvfat protocol.
6048
6049   Members
6050       dir: string
6051              directory to be exported as FAT image
6052
6053       fat-type: int (optional)
6054              FAT type: 12, 16 or 32
6055
6056       floppy: boolean (optional)
6057              whether to export a floppy image (true) or partitioned hard disk
6058              (false; default)
6059
6060       label: string (optional)
6061              set the volume label, limited to 11 bytes. FAT16 and FAT32  tra‐
6062              ditionally  have  some restrictions on labels, which are ignored
6063              by most operating systems. Defaults  to  "QEMU  VVFAT".   (since
6064              2.4)
6065
6066       rw: boolean (optional)
6067              whether to allow write operations (default: false)
6068
6069   Since
6070       2.9
6071
6072   BlockdevOptionsGenericFormat (Object)
6073       Driver  specific block device options for image format that have no op‐
6074       tion besides their data source.
6075
6076   Members
6077       file: BlockdevRef
6078              reference to or definition of the data source block device
6079
6080   Since
6081       2.9
6082
6083   BlockdevOptionsLUKS (Object)
6084       Driver specific block device options for LUKS.
6085
6086   Members
6087       key-secret: string (optional)
6088              the ID of a QCryptoSecret object providing  the  decryption  key
6089              (since  2.6).  Mandatory except when doing a metadata-only probe
6090              of the image.
6091
6092       The members of BlockdevOptionsGenericFormat
6093
6094   Since
6095       2.9
6096
6097   BlockdevOptionsGenericCOWFormat (Object)
6098       Driver specific block device options for image format that have no  op‐
6099       tion besides their data source and an optional backing file.
6100
6101   Members
6102       backing: BlockdevRefOrNull (optional)
6103              reference  to  or  definition  of the backing file block device,
6104              null disables the backing file entirely.  Defaults to the  back‐
6105              ing file stored the image file.
6106
6107       The members of BlockdevOptionsGenericFormat
6108
6109   Since
6110       2.9
6111
6112   Qcow2OverlapCheckMode (Enum)
6113       General overlap check modes.
6114
6115   Values
6116       none   Do not perform any checks
6117
6118       constant
6119              Perform only checks which can be done in constant time and with‐
6120              out reading anything from disk
6121
6122       cached Perform only checks which can be done without  reading  anything
6123              from disk
6124
6125       all    Perform all available overlap checks
6126
6127   Since
6128       2.9
6129
6130   Qcow2OverlapCheckFlags (Object)
6131       Structure  of  flags  for  each  metadata structure. Setting a field to
6132       'true' makes qemu guard that structure against unintended  overwriting.
6133       The default value is chosen according to the template given.
6134
6135   Members
6136       template: Qcow2OverlapCheckMode (optional)
6137              Specifies  a template mode which can be adjusted using the other
6138              flags, defaults to 'cached'
6139
6140       bitmap-directory: boolean (optional)
6141              since 3.0
6142
6143       main-header: boolean (optional)
6144              Not documented
6145
6146       active-l1: boolean (optional)
6147              Not documented
6148
6149       active-l2: boolean (optional)
6150              Not documented
6151
6152       refcount-table: boolean (optional)
6153              Not documented
6154
6155       refcount-block: boolean (optional)
6156              Not documented
6157
6158       snapshot-table: boolean (optional)
6159              Not documented
6160
6161       inactive-l1: boolean (optional)
6162              Not documented
6163
6164       inactive-l2: boolean (optional)
6165              Not documented
6166
6167   Since
6168       2.9
6169
6170   Qcow2OverlapChecks (Alternate)
6171       Specifies which metadata structures should  be  guarded  against  unin‐
6172       tended overwriting.
6173
6174   Members
6175       flags: Qcow2OverlapCheckFlags
6176              set  of flags for separate specification of each metadata struc‐
6177              ture type
6178
6179       mode: Qcow2OverlapCheckMode
6180              named mode which chooses a specific set of flags
6181
6182   Since
6183       2.9
6184
6185   BlockdevQcowEncryptionFormat (Enum)
6186   Values
6187       aes    AES-CBC with plain64 initialization vectors
6188
6189   Since
6190       2.10
6191
6192   BlockdevQcowEncryption (Object)
6193   Members
6194       format: BlockdevQcowEncryptionFormat
6195              Not documented
6196
6197       The members of QCryptoBlockOptionsQCow when format is "aes"
6198
6199   Since
6200       2.10
6201
6202   BlockdevOptionsQcow (Object)
6203       Driver specific block device options for qcow.
6204
6205   Members
6206       encrypt: BlockdevQcowEncryption (optional)
6207              Image decryption options. Mandatory for encrypted images, except
6208              when doing a metadata-only probe of the image.
6209
6210       The members of BlockdevOptionsGenericCOWFormat
6211
6212   Since
6213       2.10
6214
6215   BlockdevQcow2EncryptionFormat (Enum)
6216   Values
6217       aes    AES-CBC with plain64 initialization vectors
6218
6219       luks   Not documented
6220
6221   Since
6222       2.10
6223
6224   BlockdevQcow2Encryption (Object)
6225   Members
6226       format: BlockdevQcow2EncryptionFormat
6227              Not documented
6228
6229       The members of QCryptoBlockOptionsQCow when format is "aes"
6230
6231       The members of QCryptoBlockOptionsLUKS when format is "luks"
6232
6233   Since
6234       2.10
6235
6236   BlockdevOptionsPreallocate (Object)
6237       Filter  driver intended to be inserted between format and protocol node
6238       and do preallocation in protocol node on write.
6239
6240   Members
6241       prealloc-align: int (optional)
6242              on preallocation, align file  length  to  this  number,  default
6243              1048576 (1M)
6244
6245       prealloc-size: int (optional)
6246              how much to preallocate, default 134217728 (128M)
6247
6248       The members of BlockdevOptionsGenericFormat
6249
6250   Since
6251       6.0
6252
6253   BlockdevOptionsQcow2 (Object)
6254       Driver specific block device options for qcow2.
6255
6256   Members
6257       lazy-refcounts: boolean (optional)
6258              whether  to  enable the lazy refcounts feature (default is taken
6259              from the image file)
6260
6261       pass-discard-request: boolean (optional)
6262              whether discard requests to the qcow2 device should be forwarded
6263              to the data source
6264
6265       pass-discard-snapshot: boolean (optional)
6266              whether  discard  requests  for the data source should be issued
6267              when a snapshot operation  (e.g.   deleting  a  snapshot)  frees
6268              clusters in the qcow2 file
6269
6270       pass-discard-other: boolean (optional)
6271              whether discard requests for the data source should be issued on
6272              other occasions where a cluster gets freed
6273
6274       overlap-check: Qcow2OverlapChecks (optional)
6275              which overlap checks to perform for writes  to  the  image,  de‐
6276              faults to 'cached' (since 2.2)
6277
6278       cache-size: int (optional)
6279              the maximum total size of the L2 table and refcount block caches
6280              in bytes (since 2.2)
6281
6282       l2-cache-size: int (optional)
6283              the maximum size of the L2 table cache in bytes (since 2.2)
6284
6285       l2-cache-entry-size: int (optional)
6286              the size of each entry in the L2 cache in bytes. It  must  be  a
6287              power of two between 512 and the cluster size. The default value
6288              is the cluster size (since 2.12)
6289
6290       refcount-cache-size: int (optional)
6291              the maximum size of the refcount block  cache  in  bytes  (since
6292              2.2)
6293
6294       cache-clean-interval: int (optional)
6295              clean unused entries in the L2 and refcount caches. The interval
6296              is in seconds. The default value is 600 on supporting platforms,
6297              and 0 on other platforms. 0 disables this feature. (since 2.5)
6298
6299       encrypt: BlockdevQcow2Encryption (optional)
6300              Image decryption options. Mandatory for encrypted images, except
6301              when doing a metadata-only probe of the image. (since 2.10)
6302
6303       data-file: BlockdevRef (optional)
6304              reference to or definition of the external data file.  This  may
6305              only be specified for images that require an external data file.
6306              If it is not specified for such an image, the data file name  is
6307              loaded from the image file. (since 4.0)
6308
6309       The members of BlockdevOptionsGenericCOWFormat
6310
6311   Since
6312       2.9
6313
6314   SshHostKeyCheckMode (Enum)
6315   Values
6316       none   Don't check the host key at all
6317
6318       hash   Compare the host key with a given hash
6319
6320       known_hosts
6321              Check the host key against the known_hosts file
6322
6323   Since
6324       2.12
6325
6326   SshHostKeyCheckHashType (Enum)
6327   Values
6328       md5    The given hash is an md5 hash
6329
6330       sha1   The given hash is an sha1 hash
6331
6332       sha256 The given hash is an sha256 hash
6333
6334   Since
6335       2.12
6336
6337   SshHostKeyHash (Object)
6338   Members
6339       type: SshHostKeyCheckHashType
6340              The hash algorithm used for the hash
6341
6342       hash: string
6343              The expected hash value
6344
6345   Since
6346       2.12
6347
6348   SshHostKeyCheck (Object)
6349   Members
6350       mode: SshHostKeyCheckMode
6351              Not documented
6352
6353       The members of SshHostKeyHash when mode is "hash"
6354
6355   Since
6356       2.12
6357
6358   BlockdevOptionsSsh (Object)
6359   Members
6360       server: InetSocketAddress
6361              host address
6362
6363       path: string
6364              path to the image on the host
6365
6366       user: string (optional)
6367              user as which to connect, defaults to current local user name
6368
6369       host-key-check: SshHostKeyCheck (optional)
6370              Defines  how  and  what  to check the host key against (default:
6371              known_hosts)
6372
6373   Since
6374       2.9
6375
6376   BlkdebugEvent (Enum)
6377       Trigger events supported by blkdebug.
6378
6379   Values
6380       l1_shrink_write_table
6381              write zeros to the l1 table to shrink image.  (since 2.11)
6382
6383       l1_shrink_free_l2_clusters
6384              discard the l2 tables. (since 2.11)
6385
6386       cor_write
6387              a write due to copy-on-read (since 2.11)
6388
6389       cluster_alloc_space
6390              an allocation of file space for a cluster (since 4.1)
6391
6392       none   triggers once at creation of the blkdebug node (since 4.1)
6393
6394       l1_update
6395              Not documented
6396
6397       l1_grow_alloc_table
6398              Not documented
6399
6400       l1_grow_write_table
6401              Not documented
6402
6403       l1_grow_activate_table
6404              Not documented
6405
6406       l2_load
6407              Not documented
6408
6409       l2_update
6410              Not documented
6411
6412       l2_update_compressed
6413              Not documented
6414
6415       l2_alloc_cow_read
6416              Not documented
6417
6418       l2_alloc_write
6419              Not documented
6420
6421       read_aio
6422              Not documented
6423
6424       read_backing_aio
6425              Not documented
6426
6427       read_compressed
6428              Not documented
6429
6430       write_aio
6431              Not documented
6432
6433       write_compressed
6434              Not documented
6435
6436       vmstate_load
6437              Not documented
6438
6439       vmstate_save
6440              Not documented
6441
6442       cow_read
6443              Not documented
6444
6445       cow_write
6446              Not documented
6447
6448       reftable_load
6449              Not documented
6450
6451       reftable_grow
6452              Not documented
6453
6454       reftable_update
6455              Not documented
6456
6457       refblock_load
6458              Not documented
6459
6460       refblock_update
6461              Not documented
6462
6463       refblock_update_part
6464              Not documented
6465
6466       refblock_alloc
6467              Not documented
6468
6469       refblock_alloc_hookup
6470              Not documented
6471
6472       refblock_alloc_write
6473              Not documented
6474
6475       refblock_alloc_write_blocks
6476              Not documented
6477
6478       refblock_alloc_write_table
6479              Not documented
6480
6481       refblock_alloc_switch_table
6482              Not documented
6483
6484       cluster_alloc
6485              Not documented
6486
6487       cluster_alloc_bytes
6488              Not documented
6489
6490       cluster_free
6491              Not documented
6492
6493       flush_to_os
6494              Not documented
6495
6496       flush_to_disk
6497              Not documented
6498
6499       pwritev_rmw_head
6500              Not documented
6501
6502       pwritev_rmw_after_head
6503              Not documented
6504
6505       pwritev_rmw_tail
6506              Not documented
6507
6508       pwritev_rmw_after_tail
6509              Not documented
6510
6511       pwritev
6512              Not documented
6513
6514       pwritev_zero
6515              Not documented
6516
6517       pwritev_done
6518              Not documented
6519
6520       empty_image_prepare
6521              Not documented
6522
6523   Since
6524       2.9
6525
6526   BlkdebugIOType (Enum)
6527       Kinds of I/O that blkdebug can inject errors in.
6528
6529   Values
6530       read   .bdrv_co_preadv()
6531
6532       write  .bdrv_co_pwritev()
6533
6534       write-zeroes
6535              .bdrv_co_pwrite_zeroes()
6536
6537       discard
6538              .bdrv_co_pdiscard()
6539
6540       flush  .bdrv_co_flush_to_disk()
6541
6542       block-status
6543              .bdrv_co_block_status()
6544
6545   Since
6546       4.1
6547
6548   BlkdebugInjectErrorOptions (Object)
6549       Describes a single error injection for blkdebug.
6550
6551   Members
6552       event: BlkdebugEvent
6553              trigger event
6554
6555       state: int (optional)
6556              the state identifier blkdebug needs to be in to actually trigger
6557              the event; defaults to "any"
6558
6559       iotype: BlkdebugIOType (optional)
6560              the  type  of  I/O  operations on which this error should be in‐
6561              jected; defaults to "all read, write, write-zeroes, discard, and
6562              flush operations" (since: 4.1)
6563
6564       errno: int (optional)
6565              error identifier (errno) to be returned; defaults to EIO
6566
6567       sector: int (optional)
6568              specifies  the sector index which has to be affected in order to
6569              actually trigger the event; defaults to "any sector"
6570
6571       once: boolean (optional)
6572              disables further events after this one has been  triggered;  de‐
6573              faults to false
6574
6575       immediately: boolean (optional)
6576              fail immediately; defaults to false
6577
6578   Since
6579       2.9
6580
6581   BlkdebugSetStateOptions (Object)
6582       Describes a single state-change event for blkdebug.
6583
6584   Members
6585       event: BlkdebugEvent
6586              trigger event
6587
6588       state: int (optional)
6589              the  current  state identifier blkdebug needs to be in; defaults
6590              to "any"
6591
6592       new_state: int
6593              the state identifier blkdebug is  supposed  to  assume  if  this
6594              event is triggered
6595
6596   Since
6597       2.9
6598
6599   BlockdevOptionsBlkdebug (Object)
6600       Driver specific block device options for blkdebug.
6601
6602   Members
6603       image: BlockdevRef
6604              underlying raw block device (or image file)
6605
6606       config: string (optional)
6607              filename of the configuration file
6608
6609       align: int (optional)
6610              required alignment for requests in bytes, must be positive power
6611              of 2, or 0 for default
6612
6613       max-transfer: int (optional)
6614              maximum size for I/O transfers in bytes, must be positive multi‐
6615              ple of align and of the underlying file's request alignment (but
6616              need not be a power of 2), or 0 for default (since 2.10)
6617
6618       opt-write-zero: int (optional)
6619              preferred alignment for write zero requests in  bytes,  must  be
6620              positive  multiple of align and of the underlying file's request
6621              alignment (but need not be a power  of  2),  or  0  for  default
6622              (since 2.10)
6623
6624       max-write-zero: int (optional)
6625              maximum  size for write zero requests in bytes, must be positive
6626              multiple of align, of  opt-write-zero,  and  of  the  underlying
6627              file's  request  alignment  (but need not be a power of 2), or 0
6628              for default (since 2.10)
6629
6630       opt-discard: int (optional)
6631              preferred alignment for discard requests in bytes, must be posi‐
6632              tive  multiple  of  align  and  of the underlying file's request
6633              alignment (but need not be a power  of  2),  or  0  for  default
6634              (since 2.10)
6635
6636       max-discard: int (optional)
6637              maximum  size  for  discard  requests in bytes, must be positive
6638              multiple of align, of opt-discard, and of the underlying  file's
6639              request  alignment  (but need not be a power of 2), or 0 for de‐
6640              fault (since 2.10)
6641
6642       inject-error: array of BlkdebugInjectErrorOptions (optional)
6643              array of error injection descriptions
6644
6645       set-state: array of BlkdebugSetStateOptions (optional)
6646              array of state-change descriptions
6647
6648       take-child-perms: array of BlockPermission (optional)
6649              Permissions to take on image in addition to  what  is  necessary
6650              anyway  (which  depends  on how the blkdebug node is used).  De‐
6651              faults to none.  (since 5.0)
6652
6653       unshare-child-perms: array of BlockPermission (optional)
6654              Permissions not to share on image in addition to what cannot  be
6655              shared  anyway (which depends on how the blkdebug node is used).
6656              Defaults to none.  (since 5.0)
6657
6658   Since
6659       2.9
6660
6661   BlockdevOptionsBlklogwrites (Object)
6662       Driver specific block device options for blklogwrites.
6663
6664   Members
6665       file: BlockdevRef
6666              block device
6667
6668       log: BlockdevRef
6669              block device used to log writes to file
6670
6671       log-sector-size: int (optional)
6672              sector size used in logging writes to file, determines granular‐
6673              ity of offsets and sizes of writes (default: 512)
6674
6675       log-append: boolean (optional)
6676              append to an existing log (default: false)
6677
6678       log-super-update-interval: int (optional)
6679              interval  of  write  requests after which the log super block is
6680              updated to disk (default: 4096)
6681
6682   Since
6683       3.0
6684
6685   BlockdevOptionsBlkverify (Object)
6686       Driver specific block device options for blkverify.
6687
6688   Members
6689       test: BlockdevRef
6690              block device to be tested
6691
6692       raw: BlockdevRef
6693              raw image used for verification
6694
6695   Since
6696       2.9
6697
6698   BlockdevOptionsBlkreplay (Object)
6699       Driver specific block device options for blkreplay.
6700
6701   Members
6702       image: BlockdevRef
6703              disk image which should be controlled with blkreplay
6704
6705   Since
6706       4.2
6707
6708   QuorumReadPattern (Enum)
6709       An enumeration of quorum read patterns.
6710
6711   Values
6712       quorum read all the children and do a quorum vote on reads
6713
6714       fifo   read only from the first child that has not failed
6715
6716   Since
6717       2.9
6718
6719   BlockdevOptionsQuorum (Object)
6720       Driver specific block device options for Quorum
6721
6722   Members
6723       blkverify: boolean (optional)
6724
6725              true if the driver must print content mismatch
6726                     set to false by default
6727
6728       children: array of BlockdevRef
6729              the children block devices to use
6730
6731       vote-threshold: int
6732              the vote limit under which a read will fail
6733
6734       rewrite-corrupted: boolean (optional)
6735              rewrite corrupted data when quorum is reached (Since 2.1)
6736
6737       read-pattern: QuorumReadPattern (optional)
6738              choose read pattern and set to quorum by default (Since 2.2)
6739
6740   Since
6741       2.9
6742
6743   BlockdevOptionsGluster (Object)
6744       Driver specific block device options for Gluster
6745
6746   Members
6747       volume: string
6748              name of gluster volume where VM image resides
6749
6750       path: string
6751              absolute path to image file in gluster volume
6752
6753       server: array of SocketAddress
6754              gluster servers description
6755
6756       debug: int (optional)
6757              libgfapi log level (default '4' which is Error) (Since 2.8)
6758
6759       logfile: string (optional)
6760              libgfapi log file (default /dev/stderr) (Since 2.8)
6761
6762   Since
6763       2.9
6764
6765   IscsiTransport (Enum)
6766       An enumeration of libiscsi transport types
6767
6768   Values
6769       tcp    Not documented
6770
6771       iser   Not documented
6772
6773   Since
6774       2.9
6775
6776   IscsiHeaderDigest (Enum)
6777       An enumeration of header digests supported by libiscsi
6778
6779   Values
6780       crc32c Not documented
6781
6782       none   Not documented
6783
6784       crc32c-none
6785              Not documented
6786
6787       none-crc32c
6788              Not documented
6789
6790   Since
6791       2.9
6792
6793   BlockdevOptionsIscsi (Object)
6794   Members
6795       transport: IscsiTransport
6796              The iscsi transport type
6797
6798       portal: string
6799              The address of the iscsi portal
6800
6801       target: string
6802              The target iqn name
6803
6804       lun: int (optional)
6805              LUN to connect to. Defaults to 0.
6806
6807       user: string (optional)
6808              User name to log in with. If omitted, no CHAP authentication  is
6809              performed.
6810
6811       password-secret: string (optional)
6812              The  ID of a QCryptoSecret object providing the password for the
6813              login. This option is required if user is specified.
6814
6815       initiator-name: string (optional)
6816              The iqn name we want to identify to the target as. If  this  op‐
6817              tion  is not specified, an initiator name is generated automati‐
6818              cally.
6819
6820       header-digest: IscsiHeaderDigest (optional)
6821              The desired header digest. Defaults to none-crc32c.
6822
6823       timeout: int (optional)
6824              Timeout in seconds after which a request will timeout.  0  means
6825              no timeout and is the default.
6826       Driver specific block device options for iscsi
6827
6828   Since
6829       2.9
6830
6831   RbdAuthMode (Enum)
6832   Values
6833       cephx  Not documented
6834
6835       none   Not documented
6836
6837   Since
6838       3.0
6839
6840   RbdImageEncryptionFormat (Enum)
6841   Values
6842       luks   Not documented
6843
6844       luks2  Not documented
6845
6846   Since
6847       6.1
6848
6849   RbdEncryptionOptionsLUKSBase (Object)
6850   Members
6851       key-secret: string
6852              ID  of a QCryptoSecret object providing a passphrase for unlock‐
6853              ing the encryption
6854
6855   Since
6856       6.1
6857
6858   RbdEncryptionCreateOptionsLUKSBase (Object)
6859   Members
6860       cipher-alg: QCryptoCipherAlgorithm (optional)
6861              The encryption algorithm
6862
6863       The members of RbdEncryptionOptionsLUKSBase
6864
6865   Since
6866       6.1
6867
6868   RbdEncryptionOptionsLUKS (Object)
6869   Members
6870       The members of RbdEncryptionOptionsLUKSBase
6871
6872   Since
6873       6.1
6874
6875   RbdEncryptionOptionsLUKS2 (Object)
6876   Members
6877       The members of RbdEncryptionOptionsLUKSBase
6878
6879   Since
6880       6.1
6881
6882   RbdEncryptionCreateOptionsLUKS (Object)
6883   Members
6884       The members of RbdEncryptionCreateOptionsLUKSBase
6885
6886   Since
6887       6.1
6888
6889   RbdEncryptionCreateOptionsLUKS2 (Object)
6890   Members
6891       The members of RbdEncryptionCreateOptionsLUKSBase
6892
6893   Since
6894       6.1
6895
6896   RbdEncryptionOptions (Object)
6897   Members
6898       format: RbdImageEncryptionFormat
6899              Not documented
6900
6901       The members of RbdEncryptionOptionsLUKS when format is "luks"
6902
6903       The members of RbdEncryptionOptionsLUKS2 when format is "luks2"
6904
6905   Since
6906       6.1
6907
6908   RbdEncryptionCreateOptions (Object)
6909   Members
6910       format: RbdImageEncryptionFormat
6911              Not documented
6912
6913       The members of RbdEncryptionCreateOptionsLUKS when format is "luks"
6914
6915       The members of RbdEncryptionCreateOptionsLUKS2 when format is "luks2"
6916
6917   Since
6918       6.1
6919
6920   BlockdevOptionsRbd (Object)
6921   Members
6922       pool: string
6923              Ceph pool name.
6924
6925       namespace: string (optional)
6926              Rados namespace name in the Ceph pool. (Since 5.0)
6927
6928       image: string
6929              Image name in the Ceph pool.
6930
6931       conf: string (optional)
6932              path to Ceph configuration file.  Values  in  the  configuration
6933              file will be overridden by options specified via QAPI.
6934
6935       snapshot: string (optional)
6936              Ceph snapshot name.
6937
6938       encrypt: RbdEncryptionOptions (optional)
6939              Image encryption options. (Since 6.1)
6940
6941       user: string (optional)
6942              Ceph id name.
6943
6944       auth-client-required: array of RbdAuthMode (optional)
6945              Acceptable  authentication  modes.  This maps to Ceph configura‐
6946              tion option "auth_client_required".  (Since 3.0)
6947
6948       key-secret: string (optional)
6949              ID of a QCryptoSecret object providing a key for cephx authenti‐
6950              cation.   This  maps to Ceph configuration option "key".  (Since
6951              3.0)
6952
6953       server: array of InetSocketAddressBase (optional)
6954              Monitor host address and port.  This maps to the "mon_host" Ceph
6955              option.
6956
6957   Since
6958       2.9
6959
6960   ReplicationMode (Enum)
6961       An enumeration of replication modes.
6962
6963   Values
6964       primary
6965              Primary mode, the vm's state will be sent to secondary QEMU.
6966
6967       secondary
6968              Secondary mode, receive the vm's state from primary QEMU.
6969
6970   Since
6971       2.9
6972
6973   If
6974       CONFIG_REPLICATION
6975
6976   BlockdevOptionsReplication (Object)
6977       Driver specific block device options for replication
6978
6979   Members
6980       mode: ReplicationMode
6981              the replication mode
6982
6983       top-id: string (optional)
6984              In  secondary  mode, node name or device ID of the root node who
6985              owns the replication node chain. Must not be  given  in  primary
6986              mode.
6987
6988       The members of BlockdevOptionsGenericFormat
6989
6990   Since
6991       2.9
6992
6993   If
6994       CONFIG_REPLICATION
6995
6996   NFSTransport (Enum)
6997       An enumeration of NFS transport types
6998
6999   Values
7000       inet   TCP transport
7001
7002   Since
7003       2.9
7004
7005   NFSServer (Object)
7006       Captures the address of the socket
7007
7008   Members
7009       type: NFSTransport
7010              transport type used for NFS (only TCP supported)
7011
7012       host: string
7013              host address for NFS server
7014
7015   Since
7016       2.9
7017
7018   BlockdevOptionsNfs (Object)
7019       Driver specific block device option for NFS
7020
7021   Members
7022       server: NFSServer
7023              host address
7024
7025       path: string
7026              path of the image on the host
7027
7028       user: int (optional)
7029              UID  value  to use when talking to the server (defaults to 65534
7030              on Windows and getuid() on unix)
7031
7032       group: int (optional)
7033              GID value to use when talking to the server (defaults  to  65534
7034              on Windows and getgid() in unix)
7035
7036       tcp-syn-count: int (optional)
7037              number  of  SYNs  during  the session establishment (defaults to
7038              libnfs default)
7039
7040       readahead-size: int (optional)
7041              set the readahead size in bytes (defaults to libnfs default)
7042
7043       page-cache-size: int (optional)
7044              set the pagecache size in bytes (defaults to libnfs default)
7045
7046       debug: int (optional)
7047              set the NFS debug level (max 2) (defaults to libnfs default)
7048
7049   Since
7050       2.9
7051
7052   BlockdevOptionsCurlBase (Object)
7053       Driver specific block device options shared by all protocols  supported
7054       by the curl backend.
7055
7056   Members
7057       url: string
7058              URL of the image file
7059
7060       readahead: int (optional)
7061              Size  of  the  read-ahead  cache; must be a multiple of 512 (de‐
7062              faults to 256 kB)
7063
7064       timeout: int (optional)
7065              Timeout for connections, in seconds (defaults to 5)
7066
7067       username: string (optional)
7068              Username for authentication (defaults to none)
7069
7070       password-secret: string (optional)
7071              ID of a QCryptoSecret object providing a password for  authenti‐
7072              cation (defaults to no password)
7073
7074       proxy-username: string (optional)
7075              Username for proxy authentication (defaults to none)
7076
7077       proxy-password-secret: string (optional)
7078              ID  of a QCryptoSecret object providing a password for proxy au‐
7079              thentication (defaults to no password)
7080
7081   Since
7082       2.9
7083
7084   BlockdevOptionsCurlHttp (Object)
7085       Driver specific block device options for HTTP connections over the curl
7086       backend.  URLs must start with "http://".
7087
7088   Members
7089       cookie: string (optional)
7090              List  of  cookies  to set; format is "name1=content1; name2=con‐
7091              tent2;" as explained by CURLOPT_COOKIE(3). Defaults to no  cook‐
7092              ies.
7093
7094       cookie-secret: string (optional)
7095              ID  of a QCryptoSecret object providing the cookie data in a se‐
7096              cure way. See cookie for the format. (since 2.10)
7097
7098       The members of BlockdevOptionsCurlBase
7099
7100   Since
7101       2.9
7102
7103   BlockdevOptionsCurlHttps (Object)
7104       Driver specific block device options for  HTTPS  connections  over  the
7105       curl backend.  URLs must start with "https://".
7106
7107   Members
7108       cookie: string (optional)
7109              List  of  cookies  to set; format is "name1=content1; name2=con‐
7110              tent2;" as explained by CURLOPT_COOKIE(3). Defaults to no  cook‐
7111              ies.
7112
7113       sslverify: boolean (optional)
7114              Whether  to  verify  the SSL certificate's validity (defaults to
7115              true)
7116
7117       cookie-secret: string (optional)
7118              ID of a QCryptoSecret object providing the cookie data in a  se‐
7119              cure way. See cookie for the format. (since 2.10)
7120
7121       The members of BlockdevOptionsCurlBase
7122
7123   Since
7124       2.9
7125
7126   BlockdevOptionsCurlFtp (Object)
7127       Driver  specific block device options for FTP connections over the curl
7128       backend.  URLs must start with "ftp://".
7129
7130   Members
7131       The members of BlockdevOptionsCurlBase
7132
7133   Since
7134       2.9
7135
7136   BlockdevOptionsCurlFtps (Object)
7137       Driver specific block device options for FTPS connections over the curl
7138       backend.  URLs must start with "ftps://".
7139
7140   Members
7141       sslverify: boolean (optional)
7142              Whether  to  verify  the SSL certificate's validity (defaults to
7143              true)
7144
7145       The members of BlockdevOptionsCurlBase
7146
7147   Since
7148       2.9
7149
7150   BlockdevOptionsNbd (Object)
7151       Driver specific block device options for NBD.
7152
7153   Members
7154       server: SocketAddress
7155              NBD server address
7156
7157       export: string (optional)
7158              export name
7159
7160       tls-creds: string (optional)
7161              TLS credentials ID
7162
7163       x-dirty-bitmap: string (optional)
7164              A metadata context  name  such  as  "qemu:dirty-bitmap:NAME"  or
7165              "qemu:allocation-depth"  to  query  in  place of the traditional
7166              "base:allocation" block status (see NBD_OPT_LIST_META_CONTEXT in
7167              the  NBD  protocol;  and yes, naming this option x-context would
7168              have made more sense) (since 3.0)
7169
7170       reconnect-delay: int (optional)
7171              On an unexpected disconnect, the nbd  client  tries  to  connect
7172              again  until succeeding or encountering a serious error.  During
7173              the first reconnect-delay seconds, all requests are  paused  and
7174              will  be  rerun  on a successful reconnect. After that time, any
7175              delayed requests and all future requests before a successful re‐
7176              connect will immediately fail. Default 0 (Since 4.2)
7177
7178   Features
7179       unstable
7180              Member x-dirty-bitmap is experimental.
7181
7182   Since
7183       2.9
7184
7185   BlockdevOptionsRaw (Object)
7186       Driver specific block device options for the raw driver.
7187
7188   Members
7189       offset: int (optional)
7190              position where the block device starts
7191
7192       size: int (optional)
7193              the assumed size of the device
7194
7195       The members of BlockdevOptionsGenericFormat
7196
7197   Since
7198       2.9
7199
7200   BlockdevOptionsThrottle (Object)
7201       Driver specific block device options for the throttle driver
7202
7203   Members
7204       throttle-group: string
7205              the  name  of  the throttle-group object to use. It must already
7206              exist.
7207
7208       file: BlockdevRef
7209              reference to or definition of the data source block device
7210
7211   Since
7212       2.11
7213
7214   BlockdevOptionsCor (Object)
7215       Driver specific block device options for the copy-on-read driver.
7216
7217   Members
7218       bottom: string (optional)
7219              The name of a non-filter node  (allocation-bearing  layer)  that
7220              limits  the  COR operations in the backing chain (inclusive), so
7221              that no data below this node will be copied by this filter.   If
7222              option  is  absent,  the limit is not applied, so that data from
7223              all backing layers may be copied.
7224
7225       The members of BlockdevOptionsGenericFormat
7226
7227   Since
7228       6.0
7229
7230   BlockdevOptionsCbw (Object)
7231       Driver specific block device options for the copy-before-write  driver,
7232       which does so called copy-before-write operations: when data is written
7233       to the filter, the filter first reads  corresponding  blocks  from  its
7234       file child and copies them to target child. After successfully copying,
7235       the write request is propagated to file child. If  copying  fails,  the
7236       original  write  request  is  failed too and no data is written to file
7237       child.
7238
7239   Members
7240       target: BlockdevRef
7241              The target for copy-before-write operations.
7242
7243       The members of BlockdevOptionsGenericFormat
7244
7245   Since
7246       6.2
7247
7248   BlockdevOptions (Object)
7249       Options for creating a block device.  Many options  are  available  for
7250       all block devices, independent of the block driver:
7251
7252   Members
7253       driver: BlockdevDriver
7254              block driver name
7255
7256       node-name: string (optional)
7257              the  node  name of the new node (Since 2.0).  This option is re‐
7258              quired on the top level of blockdev-add.  Valid node names start
7259              with  an  alphabetic character and may contain only alphanumeric
7260              characters, '-', '.' and '_'. Their maximum length is 31 charac‐
7261              ters.
7262
7263       discard: BlockdevDiscardOptions (optional)
7264              discard-related options (default: ignore)
7265
7266       cache: BlockdevCacheOptions (optional)
7267              cache-related options
7268
7269       read-only: boolean (optional)
7270              whether  the  block device should be read-only (default: false).
7271              Note that some block drivers support only read-only access,  ei‐
7272              ther  generally  or in certain configurations. In this case, the
7273              default value does not work and the option must be specified ex‐
7274              plicitly.
7275
7276       auto-read-only: boolean (optional)
7277              if  true  and  read-only is false, QEMU may automatically decide
7278              not to open the image read-write as requested, but fall back  to
7279              read-only instead (and switch between the modes later), e.g. de‐
7280              pending on whether the image file is writable or whether a writ‐
7281              ing user is attached to the node (default: false, since 3.1)
7282
7283       detect-zeroes: BlockdevDetectZeroesOptions (optional)
7284              detect and optimize zero writes (Since 2.1) (default: off)
7285
7286       force-share: boolean (optional)
7287              force   share   all   permission   on   added  nodes.   Requires
7288              read-only=true. (Since 2.10)
7289
7290       The members of BlockdevOptionsBlkdebug when driver is "blkdebug"
7291
7292       The members of  BlockdevOptionsBlklogwrites  when  driver  is  "blklog‐
7293       writes"
7294
7295       The members of BlockdevOptionsBlkverify when driver is "blkverify"
7296
7297       The members of BlockdevOptionsBlkreplay when driver is "blkreplay"
7298
7299       The members of BlockdevOptionsGenericFormat when driver is "bochs"
7300
7301       The members of BlockdevOptionsGenericFormat when driver is "cloop"
7302
7303       The members of BlockdevOptionsGenericFormat when driver is "compress"
7304
7305       The members of BlockdevOptionsCbw when driver is "copy-before-write"
7306
7307       The members of BlockdevOptionsCor when driver is "copy-on-read"
7308
7309       The members of BlockdevOptionsGenericFormat when driver is "dmg"
7310
7311       The members of BlockdevOptionsFile when driver is "file"
7312
7313       The members of BlockdevOptionsCurlFtp when driver is "ftp"
7314
7315       The members of BlockdevOptionsCurlFtps when driver is "ftps"
7316
7317       The members of BlockdevOptionsGluster when driver is "gluster"
7318
7319       The  members  of  BlockdevOptionsFile  when driver is "host_cdrom" (If:
7320       HAVE_HOST_BLOCK_DEVICE)
7321
7322       The members of BlockdevOptionsFile when driver  is  "host_device"  (If:
7323       HAVE_HOST_BLOCK_DEVICE)
7324
7325       The members of BlockdevOptionsCurlHttp when driver is "http"
7326
7327       The members of BlockdevOptionsCurlHttps when driver is "https"
7328
7329       The members of BlockdevOptionsIscsi when driver is "iscsi"
7330
7331       The members of BlockdevOptionsLUKS when driver is "luks"
7332
7333       The members of BlockdevOptionsNbd when driver is "nbd"
7334
7335       The members of BlockdevOptionsNfs when driver is "nfs"
7336
7337       The members of BlockdevOptionsNull when driver is "null-aio"
7338
7339       The members of BlockdevOptionsNull when driver is "null-co"
7340
7341       The members of BlockdevOptionsNVMe when driver is "nvme"
7342
7343       The members of BlockdevOptionsGenericFormat when driver is "parallels"
7344
7345       The members of BlockdevOptionsPreallocate when driver is "preallocate"
7346
7347       The members of BlockdevOptionsQcow2 when driver is "qcow2"
7348
7349       The members of BlockdevOptionsQcow when driver is "qcow"
7350
7351       The members of BlockdevOptionsGenericCOWFormat when driver is "qed"
7352
7353       The members of BlockdevOptionsQuorum when driver is "quorum"
7354
7355       The members of BlockdevOptionsRaw when driver is "raw"
7356
7357       The members of BlockdevOptionsRbd when driver is "rbd"
7358
7359       The  members of BlockdevOptionsReplication when driver is "replication"
7360       (If: CONFIG_REPLICATION)
7361
7362       The members of BlockdevOptionsSsh when driver is "ssh"
7363
7364       The members of BlockdevOptionsThrottle when driver is "throttle"
7365
7366       The members of BlockdevOptionsGenericFormat when driver is "vdi"
7367
7368       The members of BlockdevOptionsGenericFormat when driver is "vhdx"
7369
7370       The members of BlockdevOptionsGenericCOWFormat when driver is "vmdk"
7371
7372       The members of BlockdevOptionsGenericFormat when driver is "vpc"
7373
7374       The members of BlockdevOptionsVVFAT when driver is "vvfat"
7375       Remaining options are determined by the block driver.
7376
7377   Since
7378       2.9
7379
7380   BlockdevRef (Alternate)
7381       Reference to a block device.
7382
7383   Members
7384       definition: BlockdevOptions
7385              defines a new block device inline
7386
7387       reference: string
7388              references the ID of an existing block device
7389
7390   Since
7391       2.9
7392
7393   BlockdevRefOrNull (Alternate)
7394       Reference to a block device.
7395
7396   Members
7397       definition: BlockdevOptions
7398              defines a new block device inline
7399
7400       reference: string
7401              references the ID of an existing block device.  An empty  string
7402              means  that  no  block device should be referenced.  Deprecated;
7403              use null instead.
7404
7405       null: null
7406              No block device should be referenced (since 2.10)
7407
7408   Since
7409       2.9
7410
7411   blockdev-add (Command)
7412       Creates a new block device.
7413
7414   Arguments
7415       The members of BlockdevOptions
7416
7417   Since
7418       2.9
7419
7420   Example
7421          1.
7422          -> { "execute": "blockdev-add",
7423               "arguments": {
7424                    "driver": "qcow2",
7425                    "node-name": "test1",
7426                    "file": {
7427                        "driver": "file",
7428                        "filename": "test.qcow2"
7429                     }
7430                }
7431              }
7432          <- { "return": {} }
7433
7434          2.
7435          -> { "execute": "blockdev-add",
7436               "arguments": {
7437                    "driver": "qcow2",
7438                    "node-name": "node0",
7439                    "discard": "unmap",
7440                    "cache": {
7441                       "direct": true
7442                     },
7443                     "file": {
7444                       "driver": "file",
7445                       "filename": "/tmp/test.qcow2"
7446                     },
7447                     "backing": {
7448                        "driver": "raw",
7449                        "file": {
7450                           "driver": "file",
7451                           "filename": "/dev/fdset/4"
7452                         }
7453                     }
7454                 }
7455               }
7456
7457          <- { "return": {} }
7458
7459   blockdev-reopen (Command)
7460       Reopens one or more block devices using the given set of options.   Any
7461       option  not  specified will be reset to its default value regardless of
7462       its previous status. If an option cannot be  changed  or  a  particular
7463       driver  does  not support reopening then the command will return an er‐
7464       ror. All devices in the list are reopened in one transaction, so if one
7465       of them fails then the whole transaction is cancelled.
7466
7467       The command receives a list of block devices to reopen. For each one of
7468       them, the top-level node-name option  (from  BlockdevOptions)  must  be
7469       specified and is used to select the block device to be reopened.  Other
7470       node-name options must be either omitted or set to the current name  of
7471       the  appropriate  node. This command won't change any node name and any
7472       attempt to do it will result in an error.
7473
7474       In the case of options that refer to child nodes, the behavior of  this
7475       command depends on the value:
7476
7477          1. A  set  of  options (BlockdevOptions): the child is reopened with
7478             the specified set of options.
7479
7480          2. A reference to the current child: the child is reopened using its
7481             existing set of options.
7482
7483          3. A  reference  to  a different node: the current child is replaced
7484             with the specified one.
7485
7486          4. NULL: the current child (if any) is detached.
7487
7488       Options (1) and (2) are supported in all cases. Option (3) is supported
7489       for file and backing, and option (4) for backing only.
7490
7491       Unlike with blockdev-add, the backing option must always be present un‐
7492       less the node being reopened does not have a backing file and its image
7493       does not have a default backing file name as part of its metadata.
7494
7495   Arguments
7496       options: array of BlockdevOptions
7497              Not documented
7498
7499   Since
7500       6.1
7501
7502   blockdev-del (Command)
7503       Deletes  a  block  device  that has been added using blockdev-add.  The
7504       command will fail if the node is attached to a device or  is  otherwise
7505       being used.
7506
7507   Arguments
7508       node-name: string
7509              Name of the graph node to delete.
7510
7511   Since
7512       2.9
7513
7514   Example
7515          -> { "execute": "blockdev-add",
7516               "arguments": {
7517                    "driver": "qcow2",
7518                    "node-name": "node0",
7519                    "file": {
7520                        "driver": "file",
7521                        "filename": "test.qcow2"
7522                    }
7523               }
7524             }
7525          <- { "return": {} }
7526
7527          -> { "execute": "blockdev-del",
7528               "arguments": { "node-name": "node0" }
7529             }
7530          <- { "return": {} }
7531
7532   BlockdevCreateOptionsFile (Object)
7533       Driver specific image creation options for file.
7534
7535   Members
7536       filename: string
7537              Filename for the new image file
7538
7539       size: int
7540              Size of the virtual disk in bytes
7541
7542       preallocation: PreallocMode (optional)
7543              Preallocation mode for the new image (default: off; allowed val‐
7544              ues: off, falloc  (if  CONFIG_POSIX_FALLOCATE),  full  (if  CON‐
7545              FIG_POSIX))
7546
7547       nocow: boolean (optional)
7548              Turn off copy-on-write (valid only on btrfs; default: off)
7549
7550       extent-size-hint: int (optional)
7551              Extent  size  hint to add to the image file; 0 for not adding an
7552              extent size hint (default: 1 MB, since 5.1)
7553
7554   Since
7555       2.12
7556
7557   BlockdevCreateOptionsGluster (Object)
7558       Driver specific image creation options for gluster.
7559
7560   Members
7561       location: BlockdevOptionsGluster
7562              Where to store the new image file
7563
7564       size: int
7565              Size of the virtual disk in bytes
7566
7567       preallocation: PreallocMode (optional)
7568              Preallocation mode for the new image (default: off; allowed val‐
7569              ues:  off, falloc (if CONFIG_GLUSTERFS_FALLOCATE), full (if CON‐
7570              FIG_GLUSTERFS_ZEROFILL))
7571
7572   Since
7573       2.12
7574
7575   BlockdevCreateOptionsLUKS (Object)
7576       Driver specific image creation options for LUKS.
7577
7578   Members
7579       file: BlockdevRef
7580              Node to create the image format on
7581
7582       size: int
7583              Size of the virtual disk in bytes
7584
7585       preallocation: PreallocMode (optional)
7586              Preallocation mode for the new image (since: 4.2) (default: off;
7587              allowed values: off, metadata, falloc, full)
7588
7589       The members of QCryptoBlockCreateOptionsLUKS
7590
7591   Since
7592       2.12
7593
7594   BlockdevCreateOptionsNfs (Object)
7595       Driver specific image creation options for NFS.
7596
7597   Members
7598       location: BlockdevOptionsNfs
7599              Where to store the new image file
7600
7601       size: int
7602              Size of the virtual disk in bytes
7603
7604   Since
7605       2.12
7606
7607   BlockdevCreateOptionsParallels (Object)
7608       Driver specific image creation options for parallels.
7609
7610   Members
7611       file: BlockdevRef
7612              Node to create the image format on
7613
7614       size: int
7615              Size of the virtual disk in bytes
7616
7617       cluster-size: int (optional)
7618              Cluster size in bytes (default: 1 MB)
7619
7620   Since
7621       2.12
7622
7623   BlockdevCreateOptionsQcow (Object)
7624       Driver specific image creation options for qcow.
7625
7626   Members
7627       file: BlockdevRef
7628              Node to create the image format on
7629
7630       size: int
7631              Size of the virtual disk in bytes
7632
7633       backing-file: string (optional)
7634              File name of the backing file if a backing file should be used
7635
7636       encrypt: QCryptoBlockCreateOptions (optional)
7637              Encryption options if the image should be encrypted
7638
7639   Since
7640       2.12
7641
7642   BlockdevQcow2Version (Enum)
7643   Values
7644       v2     The original QCOW2 format as introduced in qemu 0.10 (version 2)
7645
7646       v3     The extended QCOW2 format as introduced in qemu 1.1 (version 3)
7647
7648   Since
7649       2.12
7650
7651   Qcow2CompressionType (Enum)
7652       Compression type used in qcow2 image file
7653
7654   Values
7655       zlib   zlib compression, see <http://zlib.net/>
7656
7657       zstd (If: CONFIG_ZSTD)
7658              zstd compression, see <http://github.com/facebook/zstd>
7659
7660   Since
7661       5.1
7662
7663   BlockdevCreateOptionsQcow2 (Object)
7664       Driver specific image creation options for qcow2.
7665
7666   Members
7667       file: BlockdevRef
7668              Node to create the image format on
7669
7670       data-file: BlockdevRef (optional)
7671              Node  to use as an external data file in which all guest data is
7672              stored so that only metadata remains in the qcow2  file  (since:
7673              4.0)
7674
7675       data-file-raw: boolean (optional)
7676              True  if  the external data file must stay valid as a standalone
7677              (read-only) raw image without looking  at  qcow2  metadata  (de‐
7678              fault: false; since: 4.0)
7679
7680       extended-l2: boolean (optional)
7681              True to make the image have extended L2 entries (default: false;
7682              since 5.2)
7683
7684       size: int
7685              Size of the virtual disk in bytes
7686
7687       version: BlockdevQcow2Version (optional)
7688              Compatibility level (default: v3)
7689
7690       backing-file: string (optional)
7691              File name of the backing file if a backing file should be used
7692
7693       backing-fmt: BlockdevDriver (optional)
7694              Name of the block driver to use for the backing file
7695
7696       encrypt: QCryptoBlockCreateOptions (optional)
7697              Encryption options if the image should be encrypted
7698
7699       cluster-size: int (optional)
7700              qcow2 cluster size in bytes (default: 65536)
7701
7702       preallocation: PreallocMode (optional)
7703              Preallocation mode for the new image (default: off; allowed val‐
7704              ues: off, falloc, full, metadata)
7705
7706       lazy-refcounts: boolean (optional)
7707              True if refcounts may be updated lazily (default: off)
7708
7709       refcount-bits: int (optional)
7710              Width of reference counts in bits (default: 16)
7711
7712       compression-type: Qcow2CompressionType (optional)
7713              The image cluster compression method (default: zlib, since 5.1)
7714
7715   Since
7716       2.12
7717
7718   BlockdevCreateOptionsQed (Object)
7719       Driver specific image creation options for qed.
7720
7721   Members
7722       file: BlockdevRef
7723              Node to create the image format on
7724
7725       size: int
7726              Size of the virtual disk in bytes
7727
7728       backing-file: string (optional)
7729              File name of the backing file if a backing file should be used
7730
7731       backing-fmt: BlockdevDriver (optional)
7732              Name of the block driver to use for the backing file
7733
7734       cluster-size: int (optional)
7735              Cluster size in bytes (default: 65536)
7736
7737       table-size: int (optional)
7738              L1/L2 table size (in clusters)
7739
7740   Since
7741       2.12
7742
7743   BlockdevCreateOptionsRbd (Object)
7744       Driver specific image creation options for rbd/Ceph.
7745
7746   Members
7747       location: BlockdevOptionsRbd
7748              Where to store the new image file. This location cannot point to
7749              a snapshot.
7750
7751       size: int
7752              Size of the virtual disk in bytes
7753
7754       cluster-size: int (optional)
7755              RBD object size
7756
7757       encrypt: RbdEncryptionCreateOptions (optional)
7758              Image encryption options. (Since 6.1)
7759
7760   Since
7761       2.12
7762
7763   BlockdevVmdkSubformat (Enum)
7764       Subformat options for VMDK images
7765
7766   Values
7767       monolithicSparse
7768              Single file image with sparse cluster allocation
7769
7770       monolithicFlat
7771              Single flat data image and a descriptor file
7772
7773       twoGbMaxExtentSparse
7774              Data is split into 2GB (per virtual LBA) sparse extent files, in
7775              addition to a descriptor file
7776
7777       twoGbMaxExtentFlat
7778              Data  is  split into 2GB (per virtual LBA) flat extent files, in
7779              addition to a descriptor file
7780
7781       streamOptimized
7782              Single file  image  sparse  cluster  allocation,  optimized  for
7783              streaming over network.
7784
7785   Since
7786       4.0
7787
7788   BlockdevVmdkAdapterType (Enum)
7789       Adapter type info for VMDK images
7790
7791   Values
7792       ide    Not documented
7793
7794       buslogic
7795              Not documented
7796
7797       lsilogic
7798              Not documented
7799
7800       legacyESX
7801              Not documented
7802
7803   Since
7804       4.0
7805
7806   BlockdevCreateOptionsVmdk (Object)
7807       Driver specific image creation options for VMDK.
7808
7809   Members
7810       file: BlockdevRef
7811              Where to store the new image file. This refers to the image file
7812              for monolithcSparse and streamOptimized format, or the  descrip‐
7813              tor file for other formats.
7814
7815       size: int
7816              Size of the virtual disk in bytes
7817
7818       extents: array of BlockdevRef (optional)
7819              Where  to  store  the  data extents. Required for monolithcFlat,
7820              twoGbMaxExtentSparse and twoGbMaxExtentFlat formats.  For  mono‐
7821              lithicFlat, only one entry is required; for twoGbMaxExtent* for‐
7822              mats, the number  of  entries  required  is  calculated  as  ex‐
7823              tent_number  =  virtual_size  / 2GB. Providing more extents than
7824              will be used is an error.
7825
7826       subformat: BlockdevVmdkSubformat (optional)
7827              The subformat of the VMDK image. Default: "monolithicSparse".
7828
7829       backing-file: string (optional)
7830              The path of backing file. Default: no backing file is used.
7831
7832       adapter-type: BlockdevVmdkAdapterType (optional)
7833              The adapter type used to fill in the descriptor. Default: ide.
7834
7835       hwversion: string (optional)
7836              Hardware version. The meaningful options are "4"  or  "6".   De‐
7837              fault: "4".
7838
7839       toolsversion: string (optional)
7840              VMware guest tools version.  Default: "2147483647" (Since 6.2)
7841
7842       zeroed-grain: boolean (optional)
7843              Whether  to  enable  zeroed-grain feature for sparse subformats.
7844              Default: false.
7845
7846   Since
7847       4.0
7848
7849   BlockdevCreateOptionsSsh (Object)
7850       Driver specific image creation options for SSH.
7851
7852   Members
7853       location: BlockdevOptionsSsh
7854              Where to store the new image file
7855
7856       size: int
7857              Size of the virtual disk in bytes
7858
7859   Since
7860       2.12
7861
7862   BlockdevCreateOptionsVdi (Object)
7863       Driver specific image creation options for VDI.
7864
7865   Members
7866       file: BlockdevRef
7867              Node to create the image format on
7868
7869       size: int
7870              Size of the virtual disk in bytes
7871
7872       preallocation: PreallocMode (optional)
7873              Preallocation mode for the new image (default: off; allowed val‐
7874              ues: off, metadata)
7875
7876   Since
7877       2.12
7878
7879   BlockdevVhdxSubformat (Enum)
7880   Values
7881       dynamic
7882              Growing image file
7883
7884       fixed  Preallocated fixed-size image file
7885
7886   Since
7887       2.12
7888
7889   BlockdevCreateOptionsVhdx (Object)
7890       Driver specific image creation options for vhdx.
7891
7892   Members
7893       file: BlockdevRef
7894              Node to create the image format on
7895
7896       size: int
7897              Size of the virtual disk in bytes
7898
7899       log-size: int (optional)
7900              Log size in bytes, must be a multiple of 1 MB (default: 1 MB)
7901
7902       block-size: int (optional)
7903              Block  size  in bytes, must be a multiple of 1 MB and not larger
7904              than 256 MB (default: automatically choose a block size  depend‐
7905              ing on the image size)
7906
7907       subformat: BlockdevVhdxSubformat (optional)
7908              vhdx subformat (default: dynamic)
7909
7910       block-state-zero: boolean (optional)
7911              Force  use  of  payload blocks of type 'ZERO'. Non-standard, but
7912              default.  Do not set to 'off' when using 'qemu-img convert' with
7913              subformat=dynamic.
7914
7915   Since
7916       2.12
7917
7918   BlockdevVpcSubformat (Enum)
7919   Values
7920       dynamic
7921              Growing image file
7922
7923       fixed  Preallocated fixed-size image file
7924
7925   Since
7926       2.12
7927
7928   BlockdevCreateOptionsVpc (Object)
7929       Driver specific image creation options for vpc (VHD).
7930
7931   Members
7932       file: BlockdevRef
7933              Node to create the image format on
7934
7935       size: int
7936              Size of the virtual disk in bytes
7937
7938       subformat: BlockdevVpcSubformat (optional)
7939              vhdx subformat (default: dynamic)
7940
7941       force-size: boolean (optional)
7942              Force use of the exact byte size instead of rounding to the next
7943              size that can be represented in CHS geometry (default: false)
7944
7945   Since
7946       2.12
7947
7948   BlockdevCreateOptions (Object)
7949       Options for creating an image format on a given node.
7950
7951   Members
7952       driver: BlockdevDriver
7953              block driver to create the image format
7954
7955       The members of BlockdevCreateOptionsFile when driver is "file"
7956
7957       The members of BlockdevCreateOptionsGluster when driver is "gluster"
7958
7959       The members of BlockdevCreateOptionsLUKS when driver is "luks"
7960
7961       The members of BlockdevCreateOptionsNfs when driver is "nfs"
7962
7963       The members of BlockdevCreateOptionsParallels when  driver  is  "paral‐
7964       lels"
7965
7966       The members of BlockdevCreateOptionsQcow when driver is "qcow"
7967
7968       The members of BlockdevCreateOptionsQcow2 when driver is "qcow2"
7969
7970       The members of BlockdevCreateOptionsQed when driver is "qed"
7971
7972       The members of BlockdevCreateOptionsRbd when driver is "rbd"
7973
7974       The members of BlockdevCreateOptionsSsh when driver is "ssh"
7975
7976       The members of BlockdevCreateOptionsVdi when driver is "vdi"
7977
7978       The members of BlockdevCreateOptionsVhdx when driver is "vhdx"
7979
7980       The members of BlockdevCreateOptionsVmdk when driver is "vmdk"
7981
7982       The members of BlockdevCreateOptionsVpc when driver is "vpc"
7983
7984   Since
7985       2.12
7986
7987   blockdev-create (Command)
7988       Starts  a job to create an image format on a given node. The job is au‐
7989       tomatically finalized, but a manual job-dismiss is required.
7990
7991   Arguments
7992       job-id: string
7993              Identifier for the newly created job.
7994
7995       options: BlockdevCreateOptions
7996              Options for the image creation.
7997
7998   Since
7999       3.0
8000
8001   BlockdevAmendOptionsLUKS (Object)
8002       Driver specific image amend options for LUKS.
8003
8004   Members
8005       The members of QCryptoBlockAmendOptionsLUKS
8006
8007   Since
8008       5.1
8009
8010   BlockdevAmendOptionsQcow2 (Object)
8011       Driver specific image amend options for qcow2.  For now,  only  encryp‐
8012       tion options can be amended
8013
8014       encrypt          Encryption options to be amended
8015
8016   Members
8017       encrypt: QCryptoBlockAmendOptions (optional)
8018              Not documented
8019
8020   Since
8021       5.1
8022
8023   BlockdevAmendOptions (Object)
8024       Options for amending an image format
8025
8026   Members
8027       driver: BlockdevDriver
8028              Block driver of the node to amend.
8029
8030       The members of BlockdevAmendOptionsLUKS when driver is "luks"
8031
8032       The members of BlockdevAmendOptionsQcow2 when driver is "qcow2"
8033
8034   Since
8035       5.1
8036
8037   x-blockdev-amend (Command)
8038       Starts a job to amend format specific options of an existing open block
8039       device The job is automatically finalized, but a manual job-dismiss  is
8040       required.
8041
8042   Arguments
8043       job-id: string
8044              Identifier for the newly created job.
8045
8046       node-name: string
8047              Name of the block node to work on
8048
8049       options: BlockdevAmendOptions
8050              Options (driver specific)
8051
8052       force: boolean (optional)
8053              Allow  unsafe  operations,  format specific For luks that allows
8054              erase of the last active keyslot (permanent loss of  data),  and
8055              replacement  of  an  active keyslot (possible loss of data if IO
8056              error happens)
8057
8058   Features
8059       unstable
8060              This command is experimental.
8061
8062   Since
8063       5.1
8064
8065   BlockErrorAction (Enum)
8066       An enumeration of action that has been taken when a DISK I/O occurs
8067
8068   Values
8069       ignore error has been ignored
8070
8071       report error has been reported to the device
8072
8073       stop   error caused VM to be stopped
8074
8075   Since
8076       2.1
8077
8078   BLOCK_IMAGE_CORRUPTED (Event)
8079       Emitted when a disk image is being marked corrupt.  The  image  can  be
8080       identified  by  its  device  or node name. The 'device' field is always
8081       present for compatibility reasons, but it can be empty ("") if the  im‐
8082       age does not have a device name associated.
8083
8084   Arguments
8085       device: string
8086              device  name.  This is always present for compatibility reasons,
8087              but it can be empty ("") if the image does  not  have  a  device
8088              name associated.
8089
8090       node-name: string (optional)
8091              node name (Since: 2.4)
8092
8093       msg: string
8094              informative  message  for human consumption, such as the kind of
8095              corruption being detected. It should not be parsed by machine as
8096              it is not guaranteed to be stable
8097
8098       offset: int (optional)
8099              if  the  corruption  resulted  from an image access, this is the
8100              host's access offset into the image
8101
8102       size: int (optional)
8103              if the corruption resulted from an image access, this is the ac‐
8104              cess size
8105
8106       fatal: boolean
8107              if set, the image is marked corrupt and therefore unusable after
8108              this event and  must  be  repaired  (Since  2.2;  before,  every
8109              BLOCK_IMAGE_CORRUPTED event was fatal)
8110
8111   Note
8112       If   action  is  "stop",  a  STOP  event  will  eventually  follow  the
8113       BLOCK_IO_ERROR event.
8114
8115   Example
8116          <- { "event": "BLOCK_IMAGE_CORRUPTED",
8117               "data": { "device": "ide0-hd0", "node-name": "node0",
8118                         "msg": "Prevented active L1 table overwrite", "offset": 196608,
8119                         "size": 65536 },
8120               "timestamp": { "seconds": 1378126126, "microseconds": 966463 } }
8121
8122   Since
8123       1.7
8124
8125   BLOCK_IO_ERROR (Event)
8126       Emitted when a disk I/O error occurs
8127
8128   Arguments
8129       device: string
8130              device name. This is always present for  compatibility  reasons,
8131              but  it  can  be  empty ("") if the image does not have a device
8132              name associated.
8133
8134       node-name: string (optional)
8135              node name. Note that errors may be reported for  the  root  node
8136              that  is directly attached to a guest device rather than for the
8137              node where the error occurred. The node name is not  present  if
8138              the drive is empty. (Since: 2.8)
8139
8140       operation: IoOperationType
8141              I/O operation
8142
8143       action: BlockErrorAction
8144              action that has been taken
8145
8146       nospace: boolean (optional)
8147              true  if  I/O error was caused due to a no-space condition. This
8148              key is only  present  if  query-block's  io-status  is  present,
8149              please   see  query-block  documentation  for  more  information
8150              (since: 2.2)
8151
8152       reason: string
8153              human readable string describing the error cause.   (This  field
8154              is a debugging aid for humans, it should not be parsed by appli‐
8155              cations) (since: 2.2)
8156
8157   Note
8158       If  action  is  "stop",  a  STOP  event  will  eventually  follow   the
8159       BLOCK_IO_ERROR event
8160
8161   Since
8162       0.13
8163
8164   Example
8165          <- { "event": "BLOCK_IO_ERROR",
8166               "data": { "device": "ide0-hd1",
8167                         "node-name": "#block212",
8168                         "operation": "write",
8169                         "action": "stop" },
8170               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
8171
8172   BLOCK_JOB_COMPLETED (Event)
8173       Emitted when a block job has completed
8174
8175   Arguments
8176       type: JobType
8177              job type
8178
8179       device: string
8180              The  job identifier. Originally the device name but other values
8181              are allowed since QEMU 2.7
8182
8183       len: int
8184              maximum progress value
8185
8186       offset: int
8187              current progress value. On success this is  equal  to  len.   On
8188              failure this is less than len
8189
8190       speed: int
8191              rate limit, bytes per second
8192
8193       error: string (optional)
8194              error  message.  Only  present on failure. This field contains a
8195              human-readable error message. There are no semantics other  than
8196              that  streaming  has failed and clients should not try to inter‐
8197              pret the error string
8198
8199   Since
8200       1.1
8201
8202   Example
8203          <- { "event": "BLOCK_JOB_COMPLETED",
8204               "data": { "type": "stream", "device": "virtio-disk0",
8205                         "len": 10737418240, "offset": 10737418240,
8206                         "speed": 0 },
8207               "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
8208
8209   BLOCK_JOB_CANCELLED (Event)
8210       Emitted when a block job has been cancelled
8211
8212   Arguments
8213       type: JobType
8214              job type
8215
8216       device: string
8217              The job identifier. Originally the device name but other  values
8218              are allowed since QEMU 2.7
8219
8220       len: int
8221              maximum progress value
8222
8223       offset: int
8224              current  progress  value.  On  success this is equal to len.  On
8225              failure this is less than len
8226
8227       speed: int
8228              rate limit, bytes per second
8229
8230   Since
8231       1.1
8232
8233   Example
8234          <- { "event": "BLOCK_JOB_CANCELLED",
8235               "data": { "type": "stream", "device": "virtio-disk0",
8236                         "len": 10737418240, "offset": 134217728,
8237                         "speed": 0 },
8238               "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
8239
8240   BLOCK_JOB_ERROR (Event)
8241       Emitted when a block job encounters an error
8242
8243   Arguments
8244       device: string
8245              The job identifier. Originally the device name but other  values
8246              are allowed since QEMU 2.7
8247
8248       operation: IoOperationType
8249              I/O operation
8250
8251       action: BlockErrorAction
8252              action that has been taken
8253
8254   Since
8255       1.3
8256
8257   Example
8258          <- { "event": "BLOCK_JOB_ERROR",
8259               "data": { "device": "ide0-hd1",
8260                         "operation": "write",
8261                         "action": "stop" },
8262               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
8263
8264   BLOCK_JOB_READY (Event)
8265       Emitted when a block job is ready to complete
8266
8267   Arguments
8268       type: JobType
8269              job type
8270
8271       device: string
8272              The  job identifier. Originally the device name but other values
8273              are allowed since QEMU 2.7
8274
8275       len: int
8276              maximum progress value
8277
8278       offset: int
8279              current progress value. On success this is  equal  to  len.   On
8280              failure this is less than len
8281
8282       speed: int
8283              rate limit, bytes per second
8284
8285   Note
8286       The  "ready  to  complete"  status is always reset by a BLOCK_JOB_ERROR
8287       event
8288
8289   Since
8290       1.3
8291
8292   Example
8293          <- { "event": "BLOCK_JOB_READY",
8294               "data": { "device": "drive0", "type": "mirror", "speed": 0,
8295                         "len": 2097152, "offset": 2097152 }
8296               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
8297
8298   BLOCK_JOB_PENDING (Event)
8299       Emitted when a block job is awaiting explicit authorization to finalize
8300       graph changes via block-job-finalize. If this job is part of a transac‐
8301       tion, it will not emit this event until the transaction  has  converged
8302       first.
8303
8304   Arguments
8305       type: JobType
8306              job type
8307
8308       id: string
8309              The job identifier.
8310
8311   Since
8312       2.12
8313
8314   Example
8315          <- { "event": "BLOCK_JOB_WAITING",
8316               "data": { "device": "drive0", "type": "mirror" },
8317               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
8318
8319   PreallocMode (Enum)
8320       Preallocation mode of QEMU image file
8321
8322   Values
8323       off    no preallocation
8324
8325       metadata
8326              preallocate only for metadata
8327
8328       falloc like  full preallocation but allocate disk space by posix_fallo‐
8329              cate() rather than writing data.
8330
8331       full   preallocate all data by writing it to the device to ensure  disk
8332              space is really available. This data may or may not be zero, de‐
8333              pending on the image format  and  storage.   full  preallocation
8334              also sets up metadata correctly.
8335
8336   Since
8337       2.2
8338
8339   BLOCK_WRITE_THRESHOLD (Event)
8340       Emitted  when  writes on block device reaches or exceeds the configured
8341       write threshold. For thin-provisioned devices, this  means  the  device
8342       should  be extended to avoid pausing for disk exhaustion.  The event is
8343       one shot. Once triggered, it needs to  be  re-registered  with  another
8344       block-set-write-threshold command.
8345
8346   Arguments
8347       node-name: string
8348              graph node name on which the threshold was exceeded.
8349
8350       amount-exceeded: int
8351              amount of data which exceeded the threshold, in bytes.
8352
8353       write-threshold: int
8354              last configured threshold, in bytes.
8355
8356   Since
8357       2.3
8358
8359   block-set-write-threshold (Command)
8360       Change  the  write threshold for a block drive. An event will be deliv‐
8361       ered if a write to this block drive crosses the  configured  threshold.
8362       The  threshold  is  an offset, thus must be non-negative. Default is no
8363       write threshold. Setting the threshold to zero disables it.
8364
8365       This is useful to transparently resize thin-provisioned drives  without
8366       the guest OS noticing.
8367
8368   Arguments
8369       node-name: string
8370              graph node name on which the threshold must be set.
8371
8372       write-threshold: int
8373              configured threshold for the block device, bytes.  Use 0 to dis‐
8374              able the threshold.
8375
8376   Since
8377       2.3
8378
8379   Example
8380          -> { "execute": "block-set-write-threshold",
8381               "arguments": { "node-name": "mydev",
8382                              "write-threshold": 17179869184 } }
8383          <- { "return": {} }
8384
8385   x-blockdev-change (Command)
8386       Dynamically reconfigure the block driver state graph. It can be used to
8387       add,  remove, insert or replace a graph node. Currently only the Quorum
8388       driver implements this feature to add or remove its child. This is use‐
8389       ful to fix a broken quorum child.
8390
8391       If  node  is specified, it will be inserted under parent. child may not
8392       be specified in this case. If both parent and child are  specified  but
8393       node is not, child will be detached from parent.
8394
8395   Arguments
8396       parent: string
8397              the id or name of the parent node.
8398
8399       child: string (optional)
8400              the name of a child under the given parent node.
8401
8402       node: string (optional)
8403              the name of the node that will be added.
8404
8405   Features
8406       unstable
8407              This  command  is  experimental,  and its API is not stable.  It
8408              does not support all kinds of operations, all kinds of children,
8409              nor all block drivers.
8410
8411              FIXME  Removing  children  from  a quorum node means introducing
8412              gaps in the child indices. This cannot  be  represented  in  the
8413              'children'   list   of  BlockdevOptionsQuorum,  as  returned  by
8414              .bdrv_refresh_filename().
8415
8416              Warning: The data in a new quorum child MUST be consistent  with
8417              that of the rest of the array.
8418
8419   Since
8420       2.7
8421
8422   Example
8423          1. Add a new node to a quorum
8424          -> { "execute": "blockdev-add",
8425               "arguments": {
8426                   "driver": "raw",
8427                   "node-name": "new_node",
8428                   "file": { "driver": "file",
8429                             "filename": "test.raw" } } }
8430          <- { "return": {} }
8431          -> { "execute": "x-blockdev-change",
8432               "arguments": { "parent": "disk1",
8433                              "node": "new_node" } }
8434          <- { "return": {} }
8435
8436          2. Delete a quorum's node
8437          -> { "execute": "x-blockdev-change",
8438               "arguments": { "parent": "disk1",
8439                              "child": "children.1" } }
8440          <- { "return": {} }
8441
8442   x-blockdev-set-iothread (Command)
8443       Move node and its children into the iothread.  If iothread is null then
8444       move node and its children into the main loop.
8445
8446       The node must not be attached to a BlockBackend.
8447
8448   Arguments
8449       node-name: string
8450              the name of the block driver node
8451
8452       iothread: StrOrNull
8453              the name of the IOThread object or null for the main loop
8454
8455       force: boolean (optional)
8456              true if the node and its children should be moved when a  Block‐
8457              Backend is already attached
8458
8459   Features
8460       unstable
8461              This  command  is  experimental and intended for test cases that
8462              need control over IOThreads only.
8463
8464   Since
8465       2.12
8466
8467   Example
8468          1. Move a node into an IOThread
8469          -> { "execute": "x-blockdev-set-iothread",
8470               "arguments": { "node-name": "disk1",
8471                              "iothread": "iothread0" } }
8472          <- { "return": {} }
8473
8474          2. Move a node into the main loop
8475          -> { "execute": "x-blockdev-set-iothread",
8476               "arguments": { "node-name": "disk1",
8477                              "iothread": null } }
8478          <- { "return": {} }
8479
8480   QuorumOpType (Enum)
8481       An enumeration of the quorum operation types
8482
8483   Values
8484       read   read operation
8485
8486       write  write operation
8487
8488       flush  flush operation
8489
8490   Since
8491       2.6
8492
8493   QUORUM_FAILURE (Event)
8494       Emitted by the Quorum block driver if it fails to establish a quorum
8495
8496   Arguments
8497       reference: string
8498              device name if defined else node name
8499
8500       sector-num: int
8501              number of the first sector of the failed read operation
8502
8503       sectors-count: int
8504              failed read operation sector count
8505
8506   Note
8507       This event is rate-limited.
8508
8509   Since
8510       2.0
8511
8512   Example
8513          <- { "event": "QUORUM_FAILURE",
8514               "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
8515               "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
8516
8517   QUORUM_REPORT_BAD (Event)
8518       Emitted to report a corruption of a Quorum file
8519
8520   Arguments
8521       type: QuorumOpType
8522              quorum operation type (Since 2.6)
8523
8524       error: string (optional)
8525              error message. Only present on failure. This  field  contains  a
8526              human-readable  error message. There are no semantics other than
8527              that the block layer reported an error and  clients  should  not
8528              try to interpret the error string.
8529
8530       node-name: string
8531              the graph node name of the block driver state
8532
8533       sector-num: int
8534              number of the first sector of the failed read operation
8535
8536       sectors-count: int
8537              failed read operation sector count
8538
8539   Note
8540       This event is rate-limited.
8541
8542   Since
8543       2.0
8544
8545   Example
8546          1. Read operation
8547
8548          { "event": "QUORUM_REPORT_BAD",
8549               "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
8550                         "type": "read" },
8551               "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
8552
8553          2. Flush operation
8554
8555          { "event": "QUORUM_REPORT_BAD",
8556               "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
8557                         "type": "flush", "error": "Broken pipe" },
8558               "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
8559
8560   BlockdevSnapshotInternal (Object)
8561   Members
8562       device: string
8563              the  device  name  or  node-name  of a root node to generate the
8564              snapshot from
8565
8566       name: string
8567              the name of the internal snapshot to be created
8568
8569   Notes
8570       In transaction, if name is empty, or any snapshot matching name exists,
8571       the  operation will fail. Only some image formats support it, for exam‐
8572       ple, qcow2, and rbd.
8573
8574   Since
8575       1.7
8576
8577   blockdev-snapshot-internal-sync (Command)
8578       Synchronously take an internal snapshot of a  block  device,  when  the
8579       format  of  the image used supports it. If the name is an empty string,
8580       or a snapshot with name already exists, the operation will fail.
8581
8582       For the arguments, see the documentation of BlockdevSnapshotInternal.
8583
8584   Returns
8585       • nothing on success
8586
8587       • If device is not a valid block device, GenericError
8588
8589       • If any snapshot matching name exists, or name is empty, GenericError
8590
8591       • If the format of the image used does not support it,  BlockFormatFea‐
8592         tureNotSupported
8593
8594   Since
8595       1.7
8596
8597   Example
8598          -> { "execute": "blockdev-snapshot-internal-sync",
8599               "arguments": { "device": "ide-hd0",
8600                              "name": "snapshot0" }
8601             }
8602          <- { "return": {} }
8603
8604   blockdev-snapshot-delete-internal-sync (Command)
8605       Synchronously  delete  an internal snapshot of a block device, when the
8606       format of the image used support it. The snapshot is identified by name
8607       or  id  or both. One of the name or id is required. Return SnapshotInfo
8608       for the successfully deleted snapshot.
8609
8610   Arguments
8611       device: string
8612              the device name or node-name of a root node to delete the  snap‐
8613              shot from
8614
8615       id: string (optional)
8616              optional the snapshot's ID to be deleted
8617
8618       name: string (optional)
8619              optional the snapshot's name to be deleted
8620
8621   Returns
8622       • SnapshotInfo on success
8623
8624       • If device is not a valid block device, GenericError
8625
8626       • If snapshot not found, GenericError
8627
8628       • If  the format of the image used does not support it, BlockFormatFea‐
8629         tureNotSupported
8630
8631       • If id and name are both not specified, GenericError
8632
8633   Since
8634       1.7
8635
8636   Example
8637          -> { "execute": "blockdev-snapshot-delete-internal-sync",
8638               "arguments": { "device": "ide-hd0",
8639                              "name": "snapshot0" }
8640             }
8641          <- { "return": {
8642                             "id": "1",
8643                             "name": "snapshot0",
8644                             "vm-state-size": 0,
8645                             "date-sec": 1000012,
8646                             "date-nsec": 10,
8647                             "vm-clock-sec": 100,
8648                             "vm-clock-nsec": 20,
8649                             "icount": 220414
8650               }
8651             }
8652
8653   Additional block stuff (VM related)
8654   BiosAtaTranslation (Enum)
8655       Policy that BIOS  should  use  to  interpret  cylinder/head/sector  ad‐
8656       dresses.   Note that Bochs BIOS and SeaBIOS will not actually translate
8657       logical CHS to physical; instead, they will use logical block  address‐
8658       ing.
8659
8660   Values
8661       auto   If  cylinder/heads/sizes are passed, choose between none and LBA
8662              depending on the size of the disk.   If  they  are  not  passed,
8663              choose  none  if  QEMU  can  guess that the disk had 16 or fewer
8664              heads, large if QEMU can guess that the disk had 131072 or fewer
8665              tracks across all heads (i.e. cylinders*heads<131072), otherwise
8666              LBA.
8667
8668       none   The physical disk geometry is equal to the logical geometry.
8669
8670       lba    Assume 63 sectors per track and one of 16, 32, 64,  128  or  255
8671              heads (if fewer than 255 are enough to cover the whole disk with
8672              1024 cylinders/head).  The number of cylinders/head is then com‐
8673              puted based on the number of sectors and heads.
8674
8675       large  The  number of cylinders per head is scaled down to 1024 by cor‐
8676              respondingly scaling up the number of heads.
8677
8678       rechs  Same as large, but first convert a 16-head geometry to  15-head,
8679              by proportionally scaling up the number of cylinders/head.
8680
8681   Since
8682       2.0
8683
8684   FloppyDriveType (Enum)
8685       Type of Floppy drive to be emulated by the Floppy Disk Controller.
8686
8687   Values
8688       144    1.44MB 3.5" drive
8689
8690       288    2.88MB 3.5" drive
8691
8692       120    1.2MB 5.25" drive
8693
8694       none   No drive connected
8695
8696       auto   Automatically determined by inserted media at boot
8697
8698   Since
8699       2.6
8700
8701   PRManagerInfo (Object)
8702       Information about a persistent reservation manager
8703
8704   Members
8705       id: string
8706              the identifier of the persistent reservation manager
8707
8708       connected: boolean
8709              true  if  the persistent reservation manager is connected to the
8710              underlying storage or helper
8711
8712   Since
8713       3.0
8714
8715   query-pr-managers (Command)
8716       Returns a list of information about each  persistent  reservation  man‐
8717       ager.
8718
8719   Returns
8720       a list of PRManagerInfo for each persistent reservation manager
8721
8722   Since
8723       3.0
8724
8725   eject (Command)
8726       Ejects the medium from a removable drive.
8727
8728   Arguments
8729       device: string (optional)
8730              Block device name
8731
8732       id: string (optional)
8733              The name or QOM path of the guest device (since: 2.8)
8734
8735       force: boolean (optional)
8736              If  true,  eject  regardless of whether the drive is locked.  If
8737              not specified, the default value is false.
8738
8739   Features
8740       deprecated
8741              Member device is deprecated.  Use id instead.
8742
8743   Returns
8744       • Nothing on success
8745
8746       • If device is not a valid block device, DeviceNotFound
8747
8748   Notes
8749       Ejecting a device with no media results in success
8750
8751   Since
8752       0.14
8753
8754   Example
8755          -> { "execute": "eject", "arguments": { "id": "ide1-0-1" } }
8756          <- { "return": {} }
8757
8758   blockdev-open-tray (Command)
8759       Opens a block device's tray. If there is a block driver state tree  in‐
8760       serted  as  a  medium, it will become inaccessible to the guest (but it
8761       will remain associated to the block device, so closing  the  tray  will
8762       make it accessible again).
8763
8764       If the tray was already open before, this will be a no-op.
8765
8766       Once  the  tray  opens, a DEVICE_TRAY_MOVED event is emitted. There are
8767       cases in which no such event will be generated, these include:
8768
8769       • if the guest has locked the tray, force is false and the  guest  does
8770         not respond to the eject request
8771
8772       • if  the  BlockBackend  denoted by device does not have a guest device
8773         attached to it
8774
8775       • if the guest device does not have an actual tray
8776
8777   Arguments
8778       device: string (optional)
8779              Block device name
8780
8781       id: string (optional)
8782              The name or QOM path of the guest device (since: 2.8)
8783
8784       force: boolean (optional)
8785              if false (the default), an eject request will  be  sent  to  the
8786              guest if it has locked the tray (and the tray will not be opened
8787              immediately); if true, the tray will  be  opened  regardless  of
8788              whether it is locked
8789
8790   Features
8791       deprecated
8792              Member device is deprecated.  Use id instead.
8793
8794   Since
8795       2.5
8796
8797   Example
8798          -> { "execute": "blockdev-open-tray",
8799               "arguments": { "id": "ide0-1-0" } }
8800
8801          <- { "timestamp": { "seconds": 1418751016,
8802                              "microseconds": 716996 },
8803               "event": "DEVICE_TRAY_MOVED",
8804               "data": { "device": "ide1-cd0",
8805                         "id": "ide0-1-0",
8806                         "tray-open": true } }
8807
8808          <- { "return": {} }
8809
8810   blockdev-close-tray (Command)
8811       Closes a block device's tray. If there is a block driver state tree as‐
8812       sociated with the block device (which is currently ejected), that  tree
8813       will be loaded as the medium.
8814
8815       If the tray was already closed before, this will be a no-op.
8816
8817   Arguments
8818       device: string (optional)
8819              Block device name
8820
8821       id: string (optional)
8822              The name or QOM path of the guest device (since: 2.8)
8823
8824   Features
8825       deprecated
8826              Member device is deprecated.  Use id instead.
8827
8828   Since
8829       2.5
8830
8831   Example
8832          -> { "execute": "blockdev-close-tray",
8833               "arguments": { "id": "ide0-1-0" } }
8834
8835          <- { "timestamp": { "seconds": 1418751345,
8836                              "microseconds": 272147 },
8837               "event": "DEVICE_TRAY_MOVED",
8838               "data": { "device": "ide1-cd0",
8839                         "id": "ide0-1-0",
8840                         "tray-open": false } }
8841
8842          <- { "return": {} }
8843
8844   blockdev-remove-medium (Command)
8845       Removes  a medium (a block driver state tree) from a block device. That
8846       block device's tray must currently be open (unless there is no attached
8847       guest device).
8848
8849       If  the  tray  is  open and there is no medium inserted, this will be a
8850       no-op.
8851
8852   Arguments
8853       id: string
8854              The name or QOM path of the guest device
8855
8856   Since
8857       2.12
8858
8859   Example
8860          -> { "execute": "blockdev-remove-medium",
8861               "arguments": { "id": "ide0-1-0" } }
8862
8863          <- { "error": { "class": "GenericError",
8864                          "desc": "Tray of device 'ide0-1-0' is not open" } }
8865
8866          -> { "execute": "blockdev-open-tray",
8867               "arguments": { "id": "ide0-1-0" } }
8868
8869          <- { "timestamp": { "seconds": 1418751627,
8870                              "microseconds": 549958 },
8871               "event": "DEVICE_TRAY_MOVED",
8872               "data": { "device": "ide1-cd0",
8873                         "id": "ide0-1-0",
8874                         "tray-open": true } }
8875
8876          <- { "return": {} }
8877
8878          -> { "execute": "blockdev-remove-medium",
8879               "arguments": { "id": "ide0-1-0" } }
8880
8881          <- { "return": {} }
8882
8883   blockdev-insert-medium (Command)
8884       Inserts a medium (a block driver state tree) into a block device.  That
8885       block device's tray must currently be open (unless there is no attached
8886       guest device) and there must be no medium inserted already.
8887
8888   Arguments
8889       id: string
8890              The name or QOM path of the guest device
8891
8892       node-name: string
8893              name of a node in the block driver state graph
8894
8895   Since
8896       2.12
8897
8898   Example
8899          -> { "execute": "blockdev-add",
8900               "arguments": {
8901                   "node-name": "node0",
8902                   "driver": "raw",
8903                   "file": { "driver": "file",
8904                             "filename": "fedora.iso" } } }
8905          <- { "return": {} }
8906
8907          -> { "execute": "blockdev-insert-medium",
8908               "arguments": { "id": "ide0-1-0",
8909                              "node-name": "node0" } }
8910
8911          <- { "return": {} }
8912
8913   BlockdevChangeReadOnlyMode (Enum)
8914       Specifies the new read-only mode of  a  block  device  subject  to  the
8915       blockdev-change-medium command.
8916
8917   Values
8918       retain Retains the current read-only mode
8919
8920       read-only
8921              Makes the device read-only
8922
8923       read-write
8924              Makes the device writable
8925
8926   Since
8927       2.3
8928
8929   blockdev-change-medium (Command)
8930       Changes the medium inserted into a block device by ejecting the current
8931       medium and loading a new image file which is inserted as the new medium
8932       (this   command  combines  blockdev-open-tray,  blockdev-remove-medium,
8933       blockdev-insert-medium and blockdev-close-tray).
8934
8935   Arguments
8936       device: string (optional)
8937              Block device name
8938
8939       id: string (optional)
8940              The name or QOM path of the guest device (since: 2.8)
8941
8942       filename: string
8943              filename of the new image to be loaded
8944
8945       format: string (optional)
8946              format to open the new image with (defaults to the  probed  for‐
8947              mat)
8948
8949       read-only-mode: BlockdevChangeReadOnlyMode (optional)
8950              change the read-only mode of the device; defaults to 'retain'
8951
8952   Features
8953       deprecated
8954              Member device is deprecated.  Use id instead.
8955
8956   Since
8957       2.5
8958
8959   Examples
8960          1. Change a removable medium
8961
8962          -> { "execute": "blockdev-change-medium",
8963               "arguments": { "id": "ide0-1-0",
8964                              "filename": "/srv/images/Fedora-12-x86_64-DVD.iso",
8965                              "format": "raw" } }
8966          <- { "return": {} }
8967
8968          2. Load a read-only medium into a writable drive
8969
8970          -> { "execute": "blockdev-change-medium",
8971               "arguments": { "id": "floppyA",
8972                              "filename": "/srv/images/ro.img",
8973                              "format": "raw",
8974                              "read-only-mode": "retain" } }
8975
8976          <- { "error":
8977               { "class": "GenericError",
8978                 "desc": "Could not open '/srv/images/ro.img': Permission denied" } }
8979
8980          -> { "execute": "blockdev-change-medium",
8981               "arguments": { "id": "floppyA",
8982                              "filename": "/srv/images/ro.img",
8983                              "format": "raw",
8984                              "read-only-mode": "read-only" } }
8985
8986          <- { "return": {} }
8987
8988   DEVICE_TRAY_MOVED (Event)
8989       Emitted  whenever  the tray of a removable device is moved by the guest
8990       or by HMP/QMP commands
8991
8992   Arguments
8993       device: string
8994              Block device name. This is always present for compatibility rea‐
8995              sons,  but it can be empty ("") if the image does not have a de‐
8996              vice name associated.
8997
8998       id: string
8999              The name or QOM path of the guest device (since 2.8)
9000
9001       tray-open: boolean
9002              true if the tray has been opened or false if it has been closed
9003
9004   Since
9005       1.1
9006
9007   Example
9008          <- { "event": "DEVICE_TRAY_MOVED",
9009               "data": { "device": "ide1-cd0",
9010                         "id": "/machine/unattached/device[22]",
9011                         "tray-open": true
9012               },
9013               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
9014
9015   PR_MANAGER_STATUS_CHANGED (Event)
9016       Emitted whenever the connected status of a persistent reservation  man‐
9017       ager changes.
9018
9019   Arguments
9020       id: string
9021              The id of the PR manager object
9022
9023       connected: boolean
9024              true if the PR manager is connected to a backend
9025
9026   Since
9027       3.0
9028
9029   Example
9030          <- { "event": "PR_MANAGER_STATUS_CHANGED",
9031               "data": { "id": "pr-helper0",
9032                         "connected": true
9033               },
9034               "timestamp": { "seconds": 1519840375, "microseconds": 450486 } }
9035
9036   block_set_io_throttle (Command)
9037       Change I/O throttle limits for a block drive.
9038
9039       Since  QEMU  2.4,  each  device with I/O limits is member of a throttle
9040       group.
9041
9042       If two or more devices are members of the same group, the  limits  will
9043       apply  to the combined I/O of the whole group in a round-robin fashion.
9044       Therefore, setting new I/O limits to a device  will  affect  the  whole
9045       group.
9046
9047       The name of the group can be specified using the 'group' parameter.  If
9048       the parameter is unset, it is assumed to be the current group  of  that
9049       device.  If  it's  not in any group yet, the name of the device will be
9050       used as the name for its group.
9051
9052       The 'group' parameter can also be used to move a device to a  different
9053       group.  In this case the limits specified in the parameters will be ap‐
9054       plied to the new group only.
9055
9056       I/O limits can be disabled by setting all of them to 0.  In  this  case
9057       the  device  will be removed from its group and the rest of its members
9058       will not be affected. The 'group' parameter is ignored.
9059
9060   Arguments
9061       The members of BlockIOThrottle
9062
9063   Returns
9064       • Nothing on success
9065
9066       • If device is not a valid block device, DeviceNotFound
9067
9068   Since
9069       1.1
9070
9071   Example
9072          -> { "execute": "block_set_io_throttle",
9073               "arguments": { "id": "virtio-blk-pci0/virtio-backend",
9074                              "bps": 0,
9075                              "bps_rd": 0,
9076                              "bps_wr": 0,
9077                              "iops": 512,
9078                              "iops_rd": 0,
9079                              "iops_wr": 0,
9080                              "bps_max": 0,
9081                              "bps_rd_max": 0,
9082                              "bps_wr_max": 0,
9083                              "iops_max": 0,
9084                              "iops_rd_max": 0,
9085                              "iops_wr_max": 0,
9086                              "bps_max_length": 0,
9087                              "iops_size": 0 } }
9088          <- { "return": {} }
9089
9090          -> { "execute": "block_set_io_throttle",
9091               "arguments": { "id": "ide0-1-0",
9092                              "bps": 1000000,
9093                              "bps_rd": 0,
9094                              "bps_wr": 0,
9095                              "iops": 0,
9096                              "iops_rd": 0,
9097                              "iops_wr": 0,
9098                              "bps_max": 8000000,
9099                              "bps_rd_max": 0,
9100                              "bps_wr_max": 0,
9101                              "iops_max": 0,
9102                              "iops_rd_max": 0,
9103                              "iops_wr_max": 0,
9104                              "bps_max_length": 60,
9105                              "iops_size": 0 } }
9106          <- { "return": {} }
9107
9108   block-latency-histogram-set (Command)
9109       Manage read, write and flush latency histograms for the device.
9110
9111       If only id parameter is specified,  remove  all  present  latency  his‐
9112       tograms  for  the device. Otherwise, add/reset some of (or all) latency
9113       histograms.
9114
9115   Arguments
9116       id: string
9117              The name or QOM path of the guest device.
9118
9119       boundaries: array of int (optional)
9120              list of interval boundary values (see description in BlockLaten‐
9121              cyHistogramInfo  definition).  If  specified,  all  latency his‐
9122              tograms are removed, and empty ones created  for  all  io  types
9123              with intervals corresponding to boundaries (except for io types,
9124              for which specific boundaries are set through the following  pa‐
9125              rameters).
9126
9127       boundaries-read: array of int (optional)
9128              list  of interval boundary values for read latency histogram. If
9129              specified, old read latency histogram is removed, and empty  one
9130              created with intervals corresponding to boundaries-read. The pa‐
9131              rameter has higher priority then boundaries.
9132
9133       boundaries-write: array of int (optional)
9134              list of interval boundary values for write latency histogram.
9135
9136       boundaries-flush: array of int (optional)
9137              list of interval boundary values for flush latency histogram.
9138
9139   Returns
9140       error if device is not found or any boundary arrays are invalid.
9141
9142   Since
9143       4.0
9144
9145   Example
9146          set new histograms for all io types with intervals
9147          [0, 10), [10, 50), [50, 100), [100, +inf):
9148
9149          -> { "execute": "block-latency-histogram-set",
9150               "arguments": { "id": "drive0",
9151                              "boundaries": [10, 50, 100] } }
9152          <- { "return": {} }
9153
9154   Example
9155          set new histogram only for write, other histograms will remain
9156          not changed (or not created):
9157
9158          -> { "execute": "block-latency-histogram-set",
9159               "arguments": { "id": "drive0",
9160                              "boundaries-write": [10, 50, 100] } }
9161          <- { "return": {} }
9162
9163   Example
9164          set new histograms with the following intervals:
9165            read, flush: [0, 10), [10, 50), [50, 100), [100, +inf)
9166            write: [0, 1000), [1000, 5000), [5000, +inf)
9167
9168          -> { "execute": "block-latency-histogram-set",
9169               "arguments": { "id": "drive0",
9170                              "boundaries": [10, 50, 100],
9171                              "boundaries-write": [1000, 5000] } }
9172          <- { "return": {} }
9173
9174   Example
9175          remove all latency histograms:
9176
9177          -> { "execute": "block-latency-histogram-set",
9178               "arguments": { "id": "drive0" } }
9179          <- { "return": {} }
9180
9181   Block device exports
9182   NbdServerOptions (Object)
9183       Keep this type consistent with the nbd-server-start arguments. The only
9184       intended  difference is using SocketAddress instead of SocketAddressLe‐
9185       gacy.
9186
9187   Members
9188       addr: SocketAddress
9189              Address on which to listen.
9190
9191       tls-creds: string (optional)
9192              ID of the TLS credentials object (since 2.6).
9193
9194       tls-authz: string (optional)
9195              ID of the QAuthZ  authorization  object  used  to  validate  the
9196              client's  x509  distinguished  name.  This object is is only re‐
9197              solved at time of use, so can be deleted and  recreated  on  the
9198              fly while the NBD server is active.  If missing, it will default
9199              to denying access (since 4.0).
9200
9201       max-connections: int (optional)
9202              The maximum number of connections to allow at the same  time,  0
9203              for unlimited. (since 5.2; default: 0)
9204
9205   Since
9206       4.2
9207
9208   nbd-server-start (Command)
9209       Start  an  NBD  server listening on the given host and port.  Block de‐
9210       vices can then be exported using nbd-server-add.  The NBD  server  will
9211       present them as named exports; for example, another QEMU instance could
9212       refer to them as "nbd:HOST:PORT:exportname=NAME".
9213
9214       Keep this type consistent with the NbdServerOptions type. The only  in‐
9215       tended  difference  is  using  SocketAddressLegacy instead of SocketAd‐
9216       dress.
9217
9218   Arguments
9219       addr: SocketAddressLegacy
9220              Address on which to listen.
9221
9222       tls-creds: string (optional)
9223              ID of the TLS credentials object (since 2.6).
9224
9225       tls-authz: string (optional)
9226              ID of the QAuthZ  authorization  object  used  to  validate  the
9227              client's  x509  distinguished  name.  This object is is only re‐
9228              solved at time of use, so can be deleted and  recreated  on  the
9229              fly while the NBD server is active.  If missing, it will default
9230              to denying access (since 4.0).
9231
9232       max-connections: int (optional)
9233              The maximum number of connections to allow at the same  time,  0
9234              for unlimited. (since 5.2; default: 0)
9235
9236   Returns
9237       error if the server is already running.
9238
9239   Since
9240       1.3
9241
9242   BlockExportOptionsNbdBase (Object)
9243       An  NBD  block export (common options shared between nbd-server-add and
9244       the NBD branch of block-export-add).
9245
9246   Members
9247       name: string (optional)
9248              Export name. If unspecified, the device parameter is used as the
9249              export name. (Since 2.12)
9250
9251       description: string (optional)
9252              Free-form  description  of the export, up to 4096 bytes.  (Since
9253              5.0)
9254
9255   Since
9256       5.0
9257
9258   BlockExportOptionsNbd (Object)
9259       An NBD block export  (distinct  options  used  in  the  NBD  branch  of
9260       block-export-add).
9261
9262   Members
9263       bitmaps: array of string (optional)
9264              Also  export  each of the named dirty bitmaps reachable from de‐
9265              vice, so the NBD client can  use  NBD_OPT_SET_META_CONTEXT  with
9266              the  metadata context name "qemu:dirty-bitmap:BITMAP" to inspect
9267              each bitmap.
9268
9269       allocation-depth: boolean (optional)
9270              Also export the allocation depth map  for  device,  so  the  NBD
9271              client  can  use NBD_OPT_SET_META_CONTEXT with the metadata con‐
9272              text name "qemu:allocation-depth" to inspect allocation details.
9273              (since 5.2)
9274
9275       The members of BlockExportOptionsNbdBase
9276
9277   Since
9278       5.2
9279
9280   BlockExportOptionsVhostUserBlk (Object)
9281       A vhost-user-blk block export.
9282
9283   Members
9284       addr: SocketAddress
9285              The  vhost-user  socket on which to listen. Both 'unix' and 'fd'
9286              SocketAddress types are supported. Passed fds must be  UNIX  do‐
9287              main sockets.
9288
9289       logical-block-size: int (optional)
9290              Logical block size in bytes. Defaults to 512 bytes.
9291
9292       num-queues: int (optional)
9293              Number  of  request virtqueues. Must be greater than 0. Defaults
9294              to 1.
9295
9296   Since
9297       5.2
9298
9299   FuseExportAllowOther (Enum)
9300       Possible allow_other modes for FUSE exports.
9301
9302   Values
9303       off    Do not pass allow_other as a mount option.
9304
9305       on     Pass allow_other as a mount option.
9306
9307       auto   Try mounting with allow_other first, and if  that  fails,  retry
9308              without allow_other.
9309
9310   Since
9311       6.1
9312
9313   BlockExportOptionsFuse (Object)
9314       Options for exporting a block graph node on some (file) mountpoint as a
9315       raw image.
9316
9317   Members
9318       mountpoint: string
9319              Path on which to export the block device via  FUSE.   This  must
9320              point to an existing regular file.
9321
9322       growable: boolean (optional)
9323              Whether writes beyond the EOF should grow the block node accord‐
9324              ingly. (default: false)
9325
9326       allow-other: FuseExportAllowOther (optional)
9327              If this is off, only qemu's user is allowed access to  this  ex‐
9328              port.   That  cannot  be  changed even with chmod or chown.  En‐
9329              abling this option will allow other users access to  the  export
9330              with  the  FUSE mount option "allow_other".  Note that using al‐
9331              low_other as a non-root user requires user_allow_other to be en‐
9332              abled  in the global fuse.conf configuration file.  In auto mode
9333              (the default), the FUSE export  driver  will  first  attempt  to
9334              mount  the export with allow_other, and if that fails, try again
9335              without.  (since 6.1; default: auto)
9336
9337   Since
9338       6.0
9339
9340   If
9341       CONFIG_FUSE
9342
9343   NbdServerAddOptions (Object)
9344       An NBD block export, per legacy nbd-server-add command.
9345
9346   Members
9347       device: string
9348              The device name or node name of the node to be exported
9349
9350       writable: boolean (optional)
9351              Whether clients should be able to write to the  device  via  the
9352              NBD connection (default false).
9353
9354       bitmap: string (optional)
9355              Also  export a single dirty bitmap reachable from device, so the
9356              NBD client can use NBD_OPT_SET_META_CONTEXT  with  the  metadata
9357              context  name  "qemu:dirty-bitmap:BITMAP"  to inspect the bitmap
9358              (since 4.0).
9359
9360       The members of BlockExportOptionsNbdBase
9361
9362   Since
9363       5.0
9364
9365   nbd-server-add (Command)
9366       Export a block node to QEMU's embedded NBD server.
9367
9368       The export name will be used as the id for the resulting block export.
9369
9370   Arguments
9371       The members of NbdServerAddOptions
9372
9373   Features
9374       deprecated
9375              This command is deprecated. Use block-export-add instead.
9376
9377   Returns
9378       error if the server is not running, or export with the  same  name  al‐
9379       ready exists.
9380
9381   Since
9382       1.3
9383
9384   BlockExportRemoveMode (Enum)
9385       Mode for removing a block export.
9386
9387   Values
9388       safe   Remove  export if there are no existing connections, fail other‐
9389              wise.
9390
9391       hard   Drop all connections immediately and remove export.
9392       Potential additional modes to be added in the future:
9393
9394       hide: Just hide export from new clients, leave existing connections  as
9395       is.  Remove export after all clients are disconnected.
9396
9397       soft:  Hide export from new clients, answer with ESHUTDOWN for all fur‐
9398       ther requests from existing clients.
9399
9400   Since
9401       2.12
9402
9403   nbd-server-remove (Command)
9404       Remove NBD export by name.
9405
9406   Arguments
9407       name: string
9408              Block export id.
9409
9410       mode: BlockExportRemoveMode (optional)
9411              Mode of command operation.  See  BlockExportRemoveMode  descrip‐
9412              tion.  Default is 'safe'.
9413
9414   Features
9415       deprecated
9416              This command is deprecated. Use block-export-del instead.
9417
9418   Returns
9419       error if
9420
9421              • the server is not running
9422
9423              • export is not found
9424
9425              • mode is 'safe' and there are existing connections
9426
9427   Since
9428       2.12
9429
9430   nbd-server-stop (Command)
9431       Stop  QEMU's embedded NBD server, and unregister all devices previously
9432       added via nbd-server-add.
9433
9434   Since
9435       1.3
9436
9437   BlockExportType (Enum)
9438       An enumeration of block export types
9439
9440   Values
9441       nbd    NBD export
9442
9443       vhost-user-blk
9444              vhost-user-blk export (since 5.2)
9445
9446       fuse (If: CONFIG_FUSE)
9447              FUSE export (since: 6.0)
9448
9449   Since
9450       4.2
9451
9452   BlockExportOptions (Object)
9453       Describes a block export, i.e. how single node should be exported on an
9454       external interface.
9455
9456   Members
9457       id: string
9458              A  unique  identifier  for  the  block export (across all export
9459              types)
9460
9461       node-name: string
9462              The node name of the block node to be exported (since: 5.2)
9463
9464       writable: boolean (optional)
9465              True if clients should be able to write to the  export  (default
9466              false)
9467
9468       writethrough: boolean (optional)
9469              If true, caches are flushed after every write request to the ex‐
9470              port before  completion  is  signalled.  (since:  5.2;  default:
9471              false)
9472
9473       iothread: string (optional)
9474              The  name  of the iothread object where the export will run. The
9475              default is to use the thread currently associated with the block
9476              node. (since: 5.2)
9477
9478       fixed-iothread: boolean (optional)
9479              True  prevents the block node from being moved to another thread
9480              while the export is active. If true and iothread is  given,  ex‐
9481              port creation fails if the block node cannot be moved to the io‐
9482              thread. The default is false. (since: 5.2)
9483
9484       type: BlockExportType
9485              Not documented
9486
9487       The members of BlockExportOptionsNbd when type is "nbd"
9488
9489       The   members   of   BlockExportOptionsVhostUserBlk   when   type    is
9490       "vhost-user-blk"
9491
9492       The  members  of  BlockExportOptionsFuse  when type is "fuse" (If: CON‐
9493       FIG_FUSE)
9494
9495   Since
9496       4.2
9497
9498   block-export-add (Command)
9499       Creates a new block export.
9500
9501   Arguments
9502       The members of BlockExportOptions
9503
9504   Since
9505       5.2
9506
9507   block-export-del (Command)
9508       Request to remove a block export. This drops the  user's  reference  to
9509       the export, but the export may still stay around after this command re‐
9510       turns until the shutdown of the export has completed.
9511
9512   Arguments
9513       id: string
9514              Block export id.
9515
9516       mode: BlockExportRemoveMode (optional)
9517              Mode of command operation.  See  BlockExportRemoveMode  descrip‐
9518              tion.  Default is 'safe'.
9519
9520   Returns
9521       Error  if  the  export is not found or mode is 'safe' and the export is
9522       still in use (e.g. by existing client connections)
9523
9524   Since
9525       5.2
9526
9527   BLOCK_EXPORT_DELETED (Event)
9528       Emitted when a block export is removed and its id can be reused.
9529
9530   Arguments
9531       id: string
9532              Block export id.
9533
9534   Since
9535       5.2
9536
9537   BlockExportInfo (Object)
9538       Information about a single block export.
9539
9540   Members
9541       id: string
9542              The unique identifier for the block export
9543
9544       type: BlockExportType
9545              The block export type
9546
9547       node-name: string
9548              The node name of the block node that is exported
9549
9550       shutting-down: boolean
9551              True if the export is shutting  down  (e.g.  after  a  block-ex‐
9552              port-del command, but before the shutdown has completed)
9553
9554   Since
9555       5.2
9556
9557   query-block-exports (Command)
9558   Returns
9559       A list of BlockExportInfo describing all block exports
9560
9561   Since
9562       5.2
9563

CHARACTER DEVICES

9565   ChardevInfo (Object)
9566       Information about a character device.
9567
9568   Members
9569       label: string
9570              the label of the character device
9571
9572       filename: string
9573              the filename of the character device
9574
9575       frontend-open: boolean
9576              shows  whether the frontend device attached to this backend (eg.
9577              with the chardev=... option) is in open or closed  state  (since
9578              2.1)
9579
9580   Notes
9581       filename is encoded using the QEMU command line character device encod‐
9582       ing.  See the QEMU man page for details.
9583
9584   Since
9585       0.14
9586
9587   query-chardev (Command)
9588       Returns information about current character devices.
9589
9590   Returns
9591       a list of ChardevInfo
9592
9593   Since
9594       0.14
9595
9596   Example
9597          -> { "execute": "query-chardev" }
9598          <- {
9599                "return": [
9600                   {
9601                      "label": "charchannel0",
9602                      "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server=on",
9603                      "frontend-open": false
9604                   },
9605                   {
9606                      "label": "charmonitor",
9607                      "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server=on",
9608                      "frontend-open": true
9609                   },
9610                   {
9611                      "label": "charserial0",
9612                      "filename": "pty:/dev/pts/2",
9613                      "frontend-open": true
9614                   }
9615                ]
9616             }
9617
9618   ChardevBackendInfo (Object)
9619       Information about a character device backend
9620
9621   Members
9622       name: string
9623              The backend name
9624
9625   Since
9626       2.0
9627
9628   query-chardev-backends (Command)
9629       Returns information about character device backends.
9630
9631   Returns
9632       a list of ChardevBackendInfo
9633
9634   Since
9635       2.0
9636
9637   Example
9638          -> { "execute": "query-chardev-backends" }
9639          <- {
9640                "return":[
9641                   {
9642                      "name":"udp"
9643                   },
9644                   {
9645                      "name":"tcp"
9646                   },
9647                   {
9648                      "name":"unix"
9649                   },
9650                   {
9651                      "name":"spiceport"
9652                   }
9653                ]
9654             }
9655
9656   DataFormat (Enum)
9657       An enumeration of data format.
9658
9659   Values
9660       utf8   Data is a UTF-8 string (RFC 3629)
9661
9662       base64 Data is Base64 encoded binary (RFC 3548)
9663
9664   Since
9665       1.4
9666
9667   ringbuf-write (Command)
9668       Write to a ring buffer character device.
9669
9670   Arguments
9671       device: string
9672              the ring buffer character device name
9673
9674       data: string
9675              data to write
9676
9677       format: DataFormat (optional)
9678              data encoding (default 'utf8').
9679
9680              • base64: data must be base64 encoded text.  Its binary decoding
9681                gets written.
9682
9683              • utf8: data's UTF-8 encoding is written
9684
9685              • data  itself  is always Unicode regardless of format, like any
9686                other string.
9687
9688   Returns
9689       Nothing on success
9690
9691   Since
9692       1.4
9693
9694   Example
9695          -> { "execute": "ringbuf-write",
9696               "arguments": { "device": "foo",
9697                              "data": "abcdefgh",
9698                              "format": "utf8" } }
9699          <- { "return": {} }
9700
9701   ringbuf-read (Command)
9702       Read from a ring buffer character device.
9703
9704   Arguments
9705       device: string
9706              the ring buffer character device name
9707
9708       size: int
9709              how many bytes to read at most
9710
9711       format: DataFormat (optional)
9712              data encoding (default 'utf8').
9713
9714              • base64: the data read is returned in base64 encoding.
9715
9716              • utf8: the data read is interpreted as UTF-8.  Bug:  can  screw
9717                up when the buffer contains invalid UTF-8 sequences, NUL char‐
9718                acters, after the ring buffer  lost  data,  and  when  reading
9719                stops because the size limit is reached.
9720
9721              • The  return value is always Unicode regardless of format, like
9722                any other string.
9723
9724   Returns
9725       data read from the device
9726
9727   Since
9728       1.4
9729
9730   Example
9731          -> { "execute": "ringbuf-read",
9732               "arguments": { "device": "foo",
9733                              "size": 1000,
9734                              "format": "utf8" } }
9735          <- { "return": "abcdefgh" }
9736
9737   ChardevCommon (Object)
9738       Configuration shared across all chardev backends
9739
9740   Members
9741       logfile: string (optional)
9742              The name of a logfile to save output
9743
9744       logappend: boolean (optional)
9745              true to append instead of truncate (default to  false  to  trun‐
9746              cate)
9747
9748   Since
9749       2.6
9750
9751   ChardevFile (Object)
9752       Configuration info for file chardevs.
9753
9754   Members
9755       in: string (optional)
9756              The name of the input file
9757
9758       out: string
9759              The name of the output file
9760
9761       append: boolean (optional)
9762              Open  the file in append mode (default false to truncate) (Since
9763              2.6)
9764
9765       The members of ChardevCommon
9766
9767   Since
9768       1.4
9769
9770   ChardevHostdev (Object)
9771       Configuration info for device and pipe chardevs.
9772
9773   Members
9774       device: string
9775              The name of the special file for the device, i.e. /dev/ttyS0  on
9776              Unix or COM1: on Windows
9777
9778       The members of ChardevCommon
9779
9780   Since
9781       1.4
9782
9783   ChardevSocket (Object)
9784       Configuration info for (stream) socket chardevs.
9785
9786   Members
9787       addr: SocketAddressLegacy
9788              socket   address  to  listen  on  (server=true)  or  connect  to
9789              (server=false)
9790
9791       tls-creds: string (optional)
9792              the ID of the TLS credentials object (since 2.6)
9793
9794       tls-authz: string (optional)
9795              the ID of the QAuthZ  authorization  object  against  which  the
9796              client's  x509 distinguished name will be validated. This object
9797              is only resolved at time of use, so can be deleted and recreated
9798              on  the  fly while the chardev server is active.  If missing, it
9799              will default to denying access (since 4.0)
9800
9801       server: boolean (optional)
9802              create server socket (default: true)
9803
9804       wait: boolean (optional)
9805              wait for incoming connection on server sockets (default: false).
9806              Silently ignored with server: false.  This use is deprecated.
9807
9808       nodelay: boolean (optional)
9809              set TCP_NODELAY socket option (default: false)
9810
9811       telnet: boolean (optional)
9812              enable telnet protocol on server sockets (default: false)
9813
9814       tn3270: boolean (optional)
9815              enable  tn3270  protocol  on  server  sockets  (default:  false)
9816              (Since: 2.10)
9817
9818       websocket: boolean (optional)
9819              enable websocket protocol on  server  sockets  (default:  false)
9820              (Since: 3.1)
9821
9822       reconnect: int (optional)
9823              For a client socket, if a socket is disconnected, then attempt a
9824              reconnect after the given number of seconds.   Setting  this  to
9825              zero disables this function. (default: 0) (Since: 2.2)
9826
9827       The members of ChardevCommon
9828
9829   Since
9830       1.4
9831
9832   ChardevUdp (Object)
9833       Configuration info for datagram socket chardevs.
9834
9835   Members
9836       remote: SocketAddressLegacy
9837              remote address
9838
9839       local: SocketAddressLegacy (optional)
9840              local address
9841
9842       The members of ChardevCommon
9843
9844   Since
9845       1.5
9846
9847   ChardevMux (Object)
9848       Configuration info for mux chardevs.
9849
9850   Members
9851       chardev: string
9852              name of the base chardev.
9853
9854       The members of ChardevCommon
9855
9856   Since
9857       1.5
9858
9859   ChardevStdio (Object)
9860       Configuration info for stdio chardevs.
9861
9862   Members
9863       signal: boolean (optional)
9864              Allow  signals  (such as SIGINT triggered by ^C) be delivered to
9865              qemu.  Default: true.
9866
9867       The members of ChardevCommon
9868
9869   Since
9870       1.5
9871
9872   ChardevSpiceChannel (Object)
9873       Configuration info for spice vm channel chardevs.
9874
9875   Members
9876       type: string
9877              kind of channel (for example vdagent).
9878
9879       The members of ChardevCommon
9880
9881   Since
9882       1.5
9883
9884   If
9885       CONFIG_SPICE
9886
9887   ChardevSpicePort (Object)
9888       Configuration info for spice port chardevs.
9889
9890   Members
9891       fqdn: string
9892              name of the channel (see docs/spice-port-fqdn.txt)
9893
9894       The members of ChardevCommon
9895
9896   Since
9897       1.5
9898
9899   If
9900       CONFIG_SPICE
9901
9902   ChardevVC (Object)
9903       Configuration info for virtual console chardevs.
9904
9905   Members
9906       width: int (optional)
9907              console width,  in pixels
9908
9909       height: int (optional)
9910              console height, in pixels
9911
9912       cols: int (optional)
9913              console width,  in chars
9914
9915       rows: int (optional)
9916              console height, in chars
9917
9918       The members of ChardevCommon
9919
9920   Since
9921       1.5
9922
9923   ChardevRingbuf (Object)
9924       Configuration info for ring buffer chardevs.
9925
9926   Members
9927       size: int (optional)
9928              ring buffer size, must be power of two, default is 65536
9929
9930       The members of ChardevCommon
9931
9932   Since
9933       1.5
9934
9935   ChardevQemuVDAgent (Object)
9936       Configuration info for qemu vdagent implementation.
9937
9938   Members
9939       mouse: boolean (optional)
9940              enable/disable mouse, default is enabled.
9941
9942       clipboard: boolean (optional)
9943              enable/disable clipboard, default is disabled.
9944
9945       The members of ChardevCommon
9946
9947   Since
9948       6.1
9949
9950   If
9951       CONFIG_SPICE_PROTOCOL
9952
9953   ChardevBackendKind (Enum)
9954   Values
9955       pipe   Since 1.5
9956
9957       udp    Since 1.5
9958
9959       mux    Since 1.5
9960
9961       msmouse
9962              Since 1.5
9963
9964       wctablet
9965              Since 2.9
9966
9967       braille
9968              Since 1.5
9969
9970       testdev
9971              Since 2.2
9972
9973       stdio  Since 1.5
9974
9975       console
9976              Since 1.5
9977
9978       spicevmc (If: CONFIG_SPICE)
9979              Since 1.5
9980
9981       spiceport (If: CONFIG_SPICE)
9982              Since 1.5
9983
9984       qemu-vdagent (If: CONFIG_SPICE_PROTOCOL)
9985              Since 6.1
9986
9987       vc     v1.5
9988
9989       ringbuf
9990              Since 1.6
9991
9992       memory Since 1.5
9993
9994       file   Not documented
9995
9996       serial Not documented
9997
9998       parallel
9999              Not documented
10000
10001       socket Not documented
10002
10003       pty    Not documented
10004
10005       null   Not documented
10006
10007   Since
10008       1.4
10009
10010   ChardevFileWrapper (Object)
10011   Members
10012       data: ChardevFile
10013              Not documented
10014
10015   Since
10016       1.4
10017
10018   ChardevHostdevWrapper (Object)
10019   Members
10020       data: ChardevHostdev
10021              Not documented
10022
10023   Since
10024       1.4
10025
10026   ChardevSocketWrapper (Object)
10027   Members
10028       data: ChardevSocket
10029              Not documented
10030
10031   Since
10032       1.4
10033
10034   ChardevUdpWrapper (Object)
10035   Members
10036       data: ChardevUdp
10037              Not documented
10038
10039   Since
10040       1.5
10041
10042   ChardevCommonWrapper (Object)
10043   Members
10044       data: ChardevCommon
10045              Not documented
10046
10047   Since
10048       2.6
10049
10050   ChardevMuxWrapper (Object)
10051   Members
10052       data: ChardevMux
10053              Not documented
10054
10055   Since
10056       1.5
10057
10058   ChardevStdioWrapper (Object)
10059   Members
10060       data: ChardevStdio
10061              Not documented
10062
10063   Since
10064       1.5
10065
10066   ChardevSpiceChannelWrapper (Object)
10067   Members
10068       data: ChardevSpiceChannel
10069              Not documented
10070
10071   Since
10072       1.5
10073
10074   If
10075       CONFIG_SPICE
10076
10077   ChardevSpicePortWrapper (Object)
10078   Members
10079       data: ChardevSpicePort
10080              Not documented
10081
10082   Since
10083       1.5
10084
10085   If
10086       CONFIG_SPICE
10087
10088   ChardevQemuVDAgentWrapper (Object)
10089   Members
10090       data: ChardevQemuVDAgent
10091              Not documented
10092
10093   Since
10094       6.1
10095
10096   If
10097       CONFIG_SPICE_PROTOCOL
10098
10099   ChardevVCWrapper (Object)
10100   Members
10101       data: ChardevVC
10102              Not documented
10103
10104   Since
10105       1.5
10106
10107   ChardevRingbufWrapper (Object)
10108   Members
10109       data: ChardevRingbuf
10110              Not documented
10111
10112   Since
10113       1.5
10114
10115   ChardevBackend (Object)
10116       Configuration info for the new chardev backend.
10117
10118   Members
10119       type: ChardevBackendKind
10120              Not documented
10121
10122       The members of ChardevFileWrapper when type is "file"
10123
10124       The members of ChardevHostdevWrapper when type is "serial"
10125
10126       The members of ChardevHostdevWrapper when type is "parallel"
10127
10128       The members of ChardevHostdevWrapper when type is "pipe"
10129
10130       The members of ChardevSocketWrapper when type is "socket"
10131
10132       The members of ChardevUdpWrapper when type is "udp"
10133
10134       The members of ChardevCommonWrapper when type is "pty"
10135
10136       The members of ChardevCommonWrapper when type is "null"
10137
10138       The members of ChardevMuxWrapper when type is "mux"
10139
10140       The members of ChardevCommonWrapper when type is "msmouse"
10141
10142       The members of ChardevCommonWrapper when type is "wctablet"
10143
10144       The members of ChardevCommonWrapper when type is "braille"
10145
10146       The members of ChardevCommonWrapper when type is "testdev"
10147
10148       The members of ChardevStdioWrapper when type is "stdio"
10149
10150       The members of ChardevCommonWrapper when type is "console"
10151
10152       The members of ChardevSpiceChannelWrapper when type is "spicevmc"  (If:
10153       CONFIG_SPICE)
10154
10155       The  members  of  ChardevSpicePortWrapper when type is "spiceport" (If:
10156       CONFIG_SPICE)
10157
10158       The members of ChardevQemuVDAgentWrapper when  type  is  "qemu-vdagent"
10159       (If: CONFIG_SPICE_PROTOCOL)
10160
10161       The members of ChardevVCWrapper when type is "vc"
10162
10163       The members of ChardevRingbufWrapper when type is "ringbuf"
10164
10165       The members of ChardevRingbufWrapper when type is "memory"
10166
10167   Since
10168       1.4
10169
10170   ChardevReturn (Object)
10171       Return info about the chardev backend just created.
10172
10173   Members
10174       pty: string (optional)
10175              name  of the slave pseudoterminal device, present if and only if
10176              a chardev of type 'pty' was created
10177
10178   Since
10179       1.4
10180
10181   chardev-add (Command)
10182       Add a character device backend
10183
10184   Arguments
10185       id: string
10186              the chardev's ID, must be unique
10187
10188       backend: ChardevBackend
10189              backend type and parameters
10190
10191   Returns
10192       ChardevReturn.
10193
10194   Since
10195       1.4
10196
10197   Example
10198          -> { "execute" : "chardev-add",
10199               "arguments" : { "id" : "foo",
10200                               "backend" : { "type" : "null", "data" : {} } } }
10201          <- { "return": {} }
10202
10203          -> { "execute" : "chardev-add",
10204               "arguments" : { "id" : "bar",
10205                               "backend" : { "type" : "file",
10206                                             "data" : { "out" : "/tmp/bar.log" } } } }
10207          <- { "return": {} }
10208
10209          -> { "execute" : "chardev-add",
10210               "arguments" : { "id" : "baz",
10211                               "backend" : { "type" : "pty", "data" : {} } } }
10212          <- { "return": { "pty" : "/dev/pty/42" } }
10213
10214   chardev-change (Command)
10215       Change a character device backend
10216
10217   Arguments
10218       id: string
10219              the chardev's ID, must exist
10220
10221       backend: ChardevBackend
10222              new backend type and parameters
10223
10224   Returns
10225       ChardevReturn.
10226
10227   Since
10228       2.10
10229
10230   Example
10231          -> { "execute" : "chardev-change",
10232               "arguments" : { "id" : "baz",
10233                               "backend" : { "type" : "pty", "data" : {} } } }
10234          <- { "return": { "pty" : "/dev/pty/42" } }
10235
10236          -> {"execute" : "chardev-change",
10237              "arguments" : {
10238                  "id" : "charchannel2",
10239                  "backend" : {
10240                      "type" : "socket",
10241                      "data" : {
10242                          "addr" : {
10243                              "type" : "unix" ,
10244                              "data" : {
10245                                  "path" : "/tmp/charchannel2.socket"
10246                              }
10247                           },
10248                           "server" : true,
10249                           "wait" : false }}}}
10250          <- {"return": {}}
10251
10252   chardev-remove (Command)
10253       Remove a character device backend
10254
10255   Arguments
10256       id: string
10257              the chardev's ID, must exist and not be in use
10258
10259   Returns
10260       Nothing on success
10261
10262   Since
10263       1.4
10264
10265   Example
10266          -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
10267          <- { "return": {} }
10268
10269   chardev-send-break (Command)
10270       Send a break to a character device
10271
10272   Arguments
10273       id: string
10274              the chardev's ID, must exist
10275
10276   Returns
10277       Nothing on success
10278
10279   Since
10280       2.10
10281
10282   Example
10283          -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
10284          <- { "return": {} }
10285
10286   VSERPORT_CHANGE (Event)
10287       Emitted when the guest opens or closes a virtio-serial port.
10288
10289   Arguments
10290       id: string
10291              device identifier of the virtio-serial port
10292
10293       open: boolean
10294              true if the guest has opened the virtio-serial port
10295
10296   Note
10297       This event is rate-limited.
10298
10299   Since
10300       2.1
10301
10302   Example
10303          <- { "event": "VSERPORT_CHANGE",
10304               "data": { "id": "channel0", "open": true },
10305               "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
10306

DUMP GUEST MEMORY

10308   DumpGuestMemoryFormat (Enum)
10309       An enumeration of guest-memory-dump's format.
10310
10311   Values
10312       elf    elf format
10313
10314       kdump-zlib
10315              kdump-compressed format with zlib-compressed
10316
10317       kdump-lzo
10318              kdump-compressed format with lzo-compressed
10319
10320       kdump-snappy
10321              kdump-compressed format with snappy-compressed
10322
10323       win-dmp
10324              Windows full crashdump format, can be used instead of  ELF  con‐
10325              verting (since 2.13)
10326
10327   Since
10328       2.0
10329
10330   dump-guest-memory (Command)
10331       Dump  guest's  memory to vmcore. It is a synchronous operation that can
10332       take very long depending on the amount of guest memory.
10333
10334   Arguments
10335       paging: boolean
10336              if true, do paging to get guest's memory  mapping.  This  allows
10337              using gdb to process the core file.
10338
10339              IMPORTANT:  this option can make QEMU allocate several gigabytes
10340              of RAM. This can happen for a large guest, or a malicious  guest
10341              pretending to be large.
10342
10343              Also, paging=true has the following limitations:
10344
10345                 1. The  guest may be in a catastrophic state or can have cor‐
10346                    rupted memory, which cannot be trusted
10347
10348                 2. The guest can be in real-mode even if paging  is  enabled.
10349                    For  example, the guest uses ACPI to sleep, and ACPI sleep
10350                    state goes in real-mode
10351
10352                 3. Currently only supported on i386 and x86_64.
10353
10354       protocol: string
10355              the filename or file descriptor of  the  vmcore.  The  supported
10356              protocols are:
10357
10358              1. file:  the  protocol  starts  with "file:", and the following
10359                 string is the file's path.
10360
10361              2. fd: the protocol starts with "fd:", and the following  string
10362                 is the fd's name.
10363
10364       detach: boolean (optional)
10365              if true, QMP will return immediately rather than waiting for the
10366              dump to finish. The user can track progress using  "query-dump".
10367              (since 2.6).
10368
10369       begin: int (optional)
10370              if specified, the starting physical address.
10371
10372       length: int (optional)
10373              if  specified,  the  memory size, in bytes. If you don't want to
10374              dump all guest's memory, please  specify  the  start  begin  and
10375              length
10376
10377       format: DumpGuestMemoryFormat (optional)
10378              if  specified, the format of guest memory dump. But non-elf for‐
10379              mat is conflict with paging and filter, ie.  paging,  begin  and
10380              length is not allowed to be specified with non-elf format at the
10381              same time (since 2.0)
10382
10383   Note
10384       All boolean arguments default to false
10385
10386   Returns
10387       nothing on success
10388
10389   Since
10390       1.2
10391
10392   Example
10393          -> { "execute": "dump-guest-memory",
10394               "arguments": { "protocol": "fd:dump" } }
10395          <- { "return": {} }
10396
10397   DumpStatus (Enum)
10398       Describe the status of a long-running background guest memory dump.
10399
10400   Values
10401       none   no dump-guest-memory has started yet.
10402
10403       active there is one dump running in background.
10404
10405       completed
10406              the last dump has finished successfully.
10407
10408       failed the last dump has failed.
10409
10410   Since
10411       2.6
10412
10413   DumpQueryResult (Object)
10414       The result format for 'query-dump'.
10415
10416   Members
10417       status: DumpStatus
10418              enum of DumpStatus, which shows current dump status
10419
10420       completed: int
10421              bytes written in latest dump (uncompressed)
10422
10423       total: int
10424              total bytes to be written in latest dump (uncompressed)
10425
10426   Since
10427       2.6
10428
10429   query-dump (Command)
10430       Query latest dump status.
10431
10432   Returns
10433       A DumpStatus object showing the dump status.
10434
10435   Since
10436       2.6
10437
10438   Example
10439          -> { "execute": "query-dump" }
10440          <- { "return": { "status": "active", "completed": 1024000,
10441                           "total": 2048000 } }
10442
10443   DUMP_COMPLETED (Event)
10444       Emitted when background dump has completed
10445
10446   Arguments
10447       result: DumpQueryResult
10448              final dump status
10449
10450       error: string (optional)
10451              human-readable error string  that  provides  hint  on  why  dump
10452              failed. Only presents on failure. The user should not try to in‐
10453              terpret the error string.
10454
10455   Since
10456       2.6
10457
10458   Example
10459          { "event": "DUMP_COMPLETED",
10460            "data": {"result": {"total": 1090650112, "status": "completed",
10461                                "completed": 1090650112} } }
10462
10463   DumpGuestMemoryCapability (Object)
10464       A list of the available formats for dump-guest-memory
10465
10466   Members
10467       formats: array of DumpGuestMemoryFormat
10468              Not documented
10469
10470   Since
10471       2.0
10472
10473   query-dump-guest-memory-capability (Command)
10474       Returns the available formats for dump-guest-memory
10475
10476   Returns
10477       A  DumpGuestMemoryCapability  object  listing  available  formats   for
10478       dump-guest-memory
10479
10480   Since
10481       2.0
10482
10483   Example
10484          -> { "execute": "query-dump-guest-memory-capability" }
10485          <- { "return": { "formats":
10486                           ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] }
10487

NET DEVICES

10489   set_link (Command)
10490       Sets the link status of a virtual network adapter.
10491
10492   Arguments
10493       name: string
10494              the device name of the virtual network adapter
10495
10496       up: boolean
10497              true to set the link status to be up
10498
10499   Returns
10500       Nothing  on  success  If name is not a valid network device, DeviceNot‐
10501       Found
10502
10503   Since
10504       0.14
10505
10506   Notes
10507       Not all network adapters support setting  link  status.   This  command
10508       will  succeed  even if the network adapter does not support link status
10509       notification.
10510
10511   Example
10512          -> { "execute": "set_link",
10513               "arguments": { "name": "e1000.0", "up": false } }
10514          <- { "return": {} }
10515
10516   netdev_add (Command)
10517       Add a network backend.
10518
10519       Additional arguments depend on the type.
10520
10521   Arguments
10522       The members of Netdev
10523
10524   Since
10525       0.14
10526
10527   Returns
10528       Nothing on success If type is not a valid network  backend,  DeviceNot‐
10529       Found
10530
10531   Example
10532          -> { "execute": "netdev_add",
10533               "arguments": { "type": "user", "id": "netdev1",
10534                              "dnssearch": "example.org" } }
10535          <- { "return": {} }
10536
10537   netdev_del (Command)
10538       Remove a network backend.
10539
10540   Arguments
10541       id: string
10542              the name of the network backend to remove
10543
10544   Returns
10545       Nothing on success If id is not a valid network backend, DeviceNotFound
10546
10547   Since
10548       0.14
10549
10550   Example
10551          -> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
10552          <- { "return": {} }
10553
10554   NetLegacyNicOptions (Object)
10555       Create a new Network Interface Card.
10556
10557   Members
10558       netdev: string (optional)
10559              id of -netdev to connect to
10560
10561       macaddr: string (optional)
10562              MAC address
10563
10564       model: string (optional)
10565              device model (e1000, rtl8139, virtio etc.)
10566
10567       addr: string (optional)
10568              PCI device address
10569
10570       vectors: int (optional)
10571              number of MSI-x vectors, 0 to disable MSI-X
10572
10573   Since
10574       1.2
10575
10576   NetdevUserOptions (Object)
10577       Use  the user mode network stack which requires no administrator privi‐
10578       lege to run.
10579
10580   Members
10581       hostname: string (optional)
10582              client hostname reported by the builtin DHCP server
10583
10584       restrict: boolean (optional)
10585              isolate the guest from the host
10586
10587       ipv4: boolean (optional)
10588              whether to support IPv4, default true for enabled (since 2.6)
10589
10590       ipv6: boolean (optional)
10591              whether to support IPv6, default true for enabled (since 2.6)
10592
10593       ip: string (optional)
10594              legacy parameter, use net= instead
10595
10596       net: string (optional)
10597              IP network  address  that  the  guest  will  see,  in  the  form
10598              addr[/netmask] The netmask is optional, and can be either in the
10599              form a.b.c.d or as a number of valid top-most bits.  Default  is
10600              10.0.2.0/24.
10601
10602       host: string (optional)
10603              guest-visible address of the host
10604
10605       tftp: string (optional)
10606              root directory of the built-in TFTP server
10607
10608       bootfile: string (optional)
10609              BOOTP filename, for use with tftp=
10610
10611       dhcpstart: string (optional)
10612              the first of the 16 IPs the built-in DHCP server can assign
10613
10614       dns: string (optional)
10615              guest-visible address of the virtual nameserver
10616
10617       dnssearch: array of String (optional)
10618              list  of  DNS  suffixes  to search, passed as DHCP option to the
10619              guest
10620
10621       domainname: string (optional)
10622              guest-visible domain name of the virtual nameserver (since 3.0)
10623
10624       ipv6-prefix: string (optional)
10625              IPv6 network prefix (default is fec0::) (since 2.6). The network
10626              prefix is given in the usual hexadecimal IPv6 address notation.
10627
10628       ipv6-prefixlen: int (optional)
10629              IPv6 network prefix length (default is 64) (since 2.6)
10630
10631       ipv6-host: string (optional)
10632              guest-visible IPv6 address of the host (since 2.6)
10633
10634       ipv6-dns: string (optional)
10635              guest-visible IPv6 address of the virtual nameserver (since 2.6)
10636
10637       smb: string (optional)
10638              root directory of the built-in SMB server
10639
10640       smbserver: string (optional)
10641              IP address of the built-in SMB server
10642
10643       hostfwd: array of String (optional)
10644              redirect incoming TCP or UDP host connections to guest endpoints
10645
10646       guestfwd: array of String (optional)
10647              forward guest TCP connections
10648
10649       tftp-server-name: string (optional)
10650              RFC2132 "TFTP server name" string (Since 3.1)
10651
10652   Since
10653       1.2
10654
10655   NetdevTapOptions (Object)
10656       Used to configure a host TAP network interface backend.
10657
10658   Members
10659       ifname: string (optional)
10660              interface name
10661
10662       fd: string (optional)
10663              file descriptor of an already opened tap
10664
10665       fds: string (optional)
10666              multiple  file  descriptors of already opened multiqueue capable
10667              tap
10668
10669       script: string (optional)
10670              script to initialize the interface
10671
10672       downscript: string (optional)
10673              script to shut down the interface
10674
10675       br: string (optional)
10676              bridge name (since 2.8)
10677
10678       helper: string (optional)
10679              command to execute to configure bridge
10680
10681       sndbuf: int (optional)
10682              send buffer limit. Understands [TGMKkb] suffixes.
10683
10684       vnet_hdr: boolean (optional)
10685              enable the IFF_VNET_HDR flag on the tap interface
10686
10687       vhost: boolean (optional)
10688              enable vhost-net network accelerator
10689
10690       vhostfd: string (optional)
10691              file descriptor of an already opened vhost net device
10692
10693       vhostfds: string (optional)
10694              file descriptors of multiple already opened vhost net devices
10695
10696       vhostforce: boolean (optional)
10697              vhost on for non-MSIX virtio guests
10698
10699       queues: int (optional)
10700              number of queues to be created for multiqueue capable tap
10701
10702       poll-us: int (optional)
10703              maximum number of microseconds  that  could  be  spent  on  busy
10704              polling for tap (since 2.7)
10705
10706   Since
10707       1.2
10708
10709   NetdevSocketOptions (Object)
10710       Socket  netdevs  are  used to establish a network connection to another
10711       QEMU virtual machine via a TCP socket.
10712
10713   Members
10714       fd: string (optional)
10715              file descriptor of an already opened socket
10716
10717       listen: string (optional)
10718              port number, and optional hostname, to listen on
10719
10720       connect: string (optional)
10721              port number, and optional hostname, to connect to
10722
10723       mcast: string (optional)
10724              UDP multicast address and port number
10725
10726       localaddr: string (optional)
10727              source address and port for multicast and udp packets
10728
10729       udp: string (optional)
10730              UDP unicast address and port number
10731
10732   Since
10733       1.2
10734
10735   NetdevL2TPv3Options (Object)
10736       Configure an Ethernet over L2TPv3 tunnel.
10737
10738   Members
10739       src: string
10740              source address
10741
10742       dst: string
10743              destination address
10744
10745       srcport: string (optional)
10746              source port - mandatory for udp, optional for ip
10747
10748       dstport: string (optional)
10749              destination port - mandatory for udp, optional for ip
10750
10751       ipv6: boolean (optional)
10752              force the use of ipv6
10753
10754       udp: boolean (optional)
10755              use the udp version of l2tpv3 encapsulation
10756
10757       cookie64: boolean (optional)
10758              use 64 bit coookies
10759
10760       counter: boolean (optional)
10761              have sequence counter
10762
10763       pincounter: boolean (optional)
10764              pin sequence counter to zero - workaround for buggy  implementa‐
10765              tions or networks with packet reorder
10766
10767       txcookie: int (optional)
10768              32 or 64 bit transmit cookie
10769
10770       rxcookie: int (optional)
10771              32 or 64 bit receive cookie
10772
10773       txsession: int
10774              32 bit transmit session
10775
10776       rxsession: int (optional)
10777              32  bit receive session - if not specified set to the same value
10778              as transmit
10779
10780       offset: int (optional)
10781              additional offset - allows the insertion of additional  applica‐
10782              tion-specific data before the packet payload
10783
10784   Since
10785       2.1
10786
10787   NetdevVdeOptions (Object)
10788       Connect to a vde switch running on the host.
10789
10790   Members
10791       sock: string (optional)
10792              socket path
10793
10794       port: int (optional)
10795              port number
10796
10797       group: string (optional)
10798              group owner of socket
10799
10800       mode: int (optional)
10801              permissions for socket
10802
10803   Since
10804       1.2
10805
10806   NetdevBridgeOptions (Object)
10807       Connect a host TAP network interface to a host bridge device.
10808
10809   Members
10810       br: string (optional)
10811              bridge name
10812
10813       helper: string (optional)
10814              command to execute to configure bridge
10815
10816   Since
10817       1.2
10818
10819   NetdevHubPortOptions (Object)
10820       Connect two or more net clients through a software hub.
10821
10822   Members
10823       hubid: int
10824              hub identifier number
10825
10826       netdev: string (optional)
10827              used to connect hub to a netdev instead of a device (since 2.12)
10828
10829   Since
10830       1.2
10831
10832   NetdevNetmapOptions (Object)
10833       Connect a client to a netmap-enabled NIC or to a VALE switch port
10834
10835   Members
10836       ifname: string
10837              Either  the  name  of an existing network interface supported by
10838              netmap, or the name of a VALE port (created on the fly).  A VALE
10839              port  name  is  in the form 'valeXXX:YYY', where XXX and YYY are
10840              non-negative integers. XXX identifies a switch and  YYY  identi‐
10841              fies  a  port  of the switch. VALE ports having the same XXX are
10842              therefore connected to the same switch.
10843
10844       devname: string (optional)
10845              path of the netmap device (default: '/dev/netmap').
10846
10847   Since
10848       2.0
10849
10850   NetdevVhostUserOptions (Object)
10851       Vhost-user network backend
10852
10853   Members
10854       chardev: string
10855              name of a unix socket chardev
10856
10857       vhostforce: boolean (optional)
10858              vhost on for non-MSIX virtio guests (default: false).
10859
10860       queues: int (optional)
10861              number of queues to be created for  multiqueue  vhost-user  (de‐
10862              fault: 1) (Since 2.5)
10863
10864   Since
10865       2.1
10866
10867   NetdevVhostVDPAOptions (Object)
10868       Vhost-vdpa network backend
10869
10870       vDPA  device  is  a device that uses a datapath which complies with the
10871       virtio specifications with a vendor specific control path.
10872
10873   Members
10874       vhostdev: string (optional)
10875              path of vhost-vdpa device (default:'/dev/vhost-vdpa-0')
10876
10877       queues: int (optional)
10878              number of queues to be created for  multiqueue  vhost-vdpa  (de‐
10879              fault: 1)
10880
10881   Since
10882       5.1
10883
10884   NetClientDriver (Enum)
10885       Available netdev drivers.
10886
10887   Values
10888       none   Not documented
10889
10890       nic    Not documented
10891
10892       user   Not documented
10893
10894       tap    Not documented
10895
10896       l2tpv3 Not documented
10897
10898       socket Not documented
10899
10900       vde    Not documented
10901
10902       bridge Not documented
10903
10904       hubport
10905              Not documented
10906
10907       netmap Not documented
10908
10909       vhost-user
10910              Not documented
10911
10912       vhost-vdpa
10913              Not documented
10914
10915   Since
10916       2.7
10917
10918       vhost-vdpa since 5.1
10919
10920   Netdev (Object)
10921       Captures the configuration of a network device.
10922
10923   Members
10924       id: string
10925              identifier for monitor commands.
10926
10927       type: NetClientDriver
10928              Specify the driver used for interpreting remaining arguments.
10929
10930       The members of NetLegacyNicOptions when type is "nic"
10931
10932       The members of NetdevUserOptions when type is "user"
10933
10934       The members of NetdevTapOptions when type is "tap"
10935
10936       The members of NetdevL2TPv3Options when type is "l2tpv3"
10937
10938       The members of NetdevSocketOptions when type is "socket"
10939
10940       The members of NetdevVdeOptions when type is "vde"
10941
10942       The members of NetdevBridgeOptions when type is "bridge"
10943
10944       The members of NetdevHubPortOptions when type is "hubport"
10945
10946       The members of NetdevNetmapOptions when type is "netmap"
10947
10948       The members of NetdevVhostUserOptions when type is "vhost-user"
10949
10950       The members of NetdevVhostVDPAOptions when type is "vhost-vdpa"
10951
10952   Since
10953       1.2
10954
10955       'l2tpv3' - since 2.1
10956
10957   RxState (Enum)
10958       Packets receiving state
10959
10960   Values
10961       normal filter assigned packets according to the mac-table
10962
10963       none   don't receive any assigned packet
10964
10965       all    receive all assigned packets
10966
10967   Since
10968       1.6
10969
10970   RxFilterInfo (Object)
10971       Rx-filter information for a NIC.
10972
10973   Members
10974       name: string
10975              net client name
10976
10977       promiscuous: boolean
10978              whether promiscuous mode is enabled
10979
10980       multicast: RxState
10981              multicast receive state
10982
10983       unicast: RxState
10984              unicast receive state
10985
10986       vlan: RxState
10987              vlan receive state (Since 2.0)
10988
10989       broadcast-allowed: boolean
10990              whether to receive broadcast
10991
10992       multicast-overflow: boolean
10993              multicast table is overflowed or not
10994
10995       unicast-overflow: boolean
10996              unicast table is overflowed or not
10997
10998       main-mac: string
10999              the main macaddr string
11000
11001       vlan-table: array of int
11002              a list of active vlan id
11003
11004       unicast-table: array of string
11005              a list of unicast macaddr string
11006
11007       multicast-table: array of string
11008              a list of multicast macaddr string
11009
11010   Since
11011       1.6
11012
11013   query-rx-filter (Command)
11014       Return rx-filter information for all NICs (or for the given NIC).
11015
11016   Arguments
11017       name: string (optional)
11018              net client name
11019
11020   Returns
11021       list  of  RxFilterInfo for all NICs (or for the given NIC).  Returns an
11022       error if the given name doesn't exist, or  given  NIC  doesn't  support
11023       rx-filter querying, or given net client isn't a NIC.
11024
11025   Since
11026       1.6
11027
11028   Example
11029          -> { "execute": "query-rx-filter", "arguments": { "name": "vnet0" } }
11030          <- { "return": [
11031                  {
11032                      "promiscuous": true,
11033                      "name": "vnet0",
11034                      "main-mac": "52:54:00:12:34:56",
11035                      "unicast": "normal",
11036                      "vlan": "normal",
11037                      "vlan-table": [
11038                          4,
11039                          0
11040                      ],
11041                      "unicast-table": [
11042                      ],
11043                      "multicast": "normal",
11044                      "multicast-overflow": false,
11045                      "unicast-overflow": false,
11046                      "multicast-table": [
11047                          "01:00:5e:00:00:01",
11048                          "33:33:00:00:00:01",
11049                          "33:33:ff:12:34:56"
11050                      ],
11051                      "broadcast-allowed": false
11052                  }
11053                ]
11054             }
11055
11056   NIC_RX_FILTER_CHANGED (Event)
11057       Emitted once until the 'query-rx-filter' command is executed, the first
11058       event will always be emitted
11059
11060   Arguments
11061       name: string (optional)
11062              net client name
11063
11064       path: string
11065              device path
11066
11067   Since
11068       1.6
11069
11070   Example
11071          <- { "event": "NIC_RX_FILTER_CHANGED",
11072               "data": { "name": "vnet0",
11073                         "path": "/machine/peripheral/vnet0/virtio-backend" },
11074               "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
11075             }
11076
11077   AnnounceParameters (Object)
11078       Parameters for self-announce timers
11079
11080   Members
11081       initial: int
11082              Initial delay (in ms) before sending  the  first  GARP/RARP  an‐
11083              nouncement
11084
11085       max: int
11086              Maximum delay (in ms) between GARP/RARP announcement packets
11087
11088       rounds: int
11089              Number of self-announcement attempts
11090
11091       step: int
11092              Delay increase (in ms) after each self-announcement attempt
11093
11094       interfaces: array of string (optional)
11095              An  optional  list  of  interface names, which restricts the an‐
11096              nouncement to the listed interfaces. (Since 4.1)
11097
11098       id: string (optional)
11099              A name to be used to identify an instance of announce-timers and
11100              to  allow  it to modified later.  Not for use as part of the mi‐
11101              gration parameters. (Since 4.1)
11102
11103   Since
11104       4.0
11105
11106   announce-self (Command)
11107       Trigger generation of broadcast RARP frames to update network switches.
11108       This can be useful when network bonds fail-over the active slave.
11109
11110   Arguments
11111       The members of AnnounceParameters
11112
11113   Example
11114          -> { "execute": "announce-self",
11115               "arguments": {
11116                   "initial": 50, "max": 550, "rounds": 10, "step": 50,
11117                   "interfaces": ["vn2", "vn3"], "id": "bob" } }
11118          <- { "return": {} }
11119
11120   Since
11121       4.0
11122
11123   FAILOVER_NEGOTIATED (Event)
11124       Emitted  when  VIRTIO_NET_F_STANDBY was enabled during feature negotia‐
11125       tion.  Failover primary devices which were hidden (not hotplugged  when
11126       requested)  before will now be hotplugged by the virtio-net standby de‐
11127       vice.
11128
11129       device-id: QEMU device id of the unplugged device
11130
11131   Arguments
11132       device-id: string
11133              Not documented
11134
11135   Since
11136       4.2
11137
11138   Example
11139          <- { "event": "FAILOVER_NEGOTIATED",
11140               "data": "net1" }
11141

RDMA DEVICE

11143   RDMA_GID_STATUS_CHANGED (Event)
11144       Emitted when guest driver adds/deletes GID to/from device
11145
11146   Arguments
11147       netdev: string
11148              RoCE Network Device name
11149
11150       gid-status: boolean
11151              Add or delete indication
11152
11153       subnet-prefix: int
11154              Subnet Prefix
11155
11156       interface-id: int
11157              Not documented
11158       interface-id : Interface ID
11159
11160   Since
11161       4.0
11162
11163   Example
11164          <- {"timestamp": {"seconds": 1541579657, "microseconds": 986760},
11165              "event": "RDMA_GID_STATUS_CHANGED",
11166              "data":
11167                  {"netdev": "bridge0",
11168                  "interface-id": 15880512517475447892,
11169                  "gid-status": true,
11170                  "subnet-prefix": 33022}}
11171

ROCKER SWITCH DEVICE

11173   RockerSwitch (Object)
11174       Rocker switch information.
11175
11176   Members
11177       name: string
11178              switch name
11179
11180       id: int
11181              switch ID
11182
11183       ports: int
11184              number of front-panel ports
11185
11186   Since
11187       2.4
11188
11189   query-rocker (Command)
11190       Return rocker switch information.
11191
11192   Arguments
11193       name: string
11194              Not documented
11195
11196   Returns
11197       Rocker information
11198
11199   Since
11200       2.4
11201
11202   Example
11203          -> { "execute": "query-rocker", "arguments": { "name": "sw1" } }
11204          <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}}
11205
11206   RockerPortDuplex (Enum)
11207       An eumeration of port duplex states.
11208
11209   Values
11210       half   half duplex
11211
11212       full   full duplex
11213
11214   Since
11215       2.4
11216
11217   RockerPortAutoneg (Enum)
11218       An eumeration of port autoneg states.
11219
11220   Values
11221       off    autoneg is off
11222
11223       on     autoneg is on
11224
11225   Since
11226       2.4
11227
11228   RockerPort (Object)
11229       Rocker switch port information.
11230
11231   Members
11232       name: string
11233              port name
11234
11235       enabled: boolean
11236              port is enabled for I/O
11237
11238       link-up: boolean
11239              physical link is UP on port
11240
11241       speed: int
11242              port link speed in Mbps
11243
11244       duplex: RockerPortDuplex
11245              port link duplex
11246
11247       autoneg: RockerPortAutoneg
11248              port link autoneg
11249
11250   Since
11251       2.4
11252
11253   query-rocker-ports (Command)
11254       Return rocker switch port information.
11255
11256   Arguments
11257       name: string
11258              Not documented
11259
11260   Returns
11261       a list of RockerPort information
11262
11263   Since
11264       2.4
11265
11266   Example
11267          -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } }
11268          <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1",
11269                            "autoneg": "off", "link-up": true, "speed": 10000},
11270                           {"duplex": "full", "enabled": true, "name": "sw1.2",
11271                            "autoneg": "off", "link-up": true, "speed": 10000}
11272             ]}
11273
11274   RockerOfDpaFlowKey (Object)
11275       Rocker switch OF-DPA flow key
11276
11277   Members
11278       priority: int
11279              key priority, 0 being lowest priority
11280
11281       tbl-id: int
11282              flow table ID
11283
11284       in-pport: int (optional)
11285              physical input port
11286
11287       tunnel-id: int (optional)
11288              tunnel ID
11289
11290       vlan-id: int (optional)
11291              VLAN ID
11292
11293       eth-type: int (optional)
11294              Ethernet header type
11295
11296       eth-src: string (optional)
11297              Ethernet header source MAC address
11298
11299       eth-dst: string (optional)
11300              Ethernet header destination MAC address
11301
11302       ip-proto: int (optional)
11303              IP Header protocol field
11304
11305       ip-tos: int (optional)
11306              IP header TOS field
11307
11308       ip-dst: string (optional)
11309              IP header destination address
11310
11311   Note
11312       optional members may or may not appear in the  flow  key  depending  if
11313       they're relevant to the flow key.
11314
11315   Since
11316       2.4
11317
11318   RockerOfDpaFlowMask (Object)
11319       Rocker switch OF-DPA flow mask
11320
11321   Members
11322       in-pport: int (optional)
11323              physical input port
11324
11325       tunnel-id: int (optional)
11326              tunnel ID
11327
11328       vlan-id: int (optional)
11329              VLAN ID
11330
11331       eth-src: string (optional)
11332              Ethernet header source MAC address
11333
11334       eth-dst: string (optional)
11335              Ethernet header destination MAC address
11336
11337       ip-proto: int (optional)
11338              IP Header protocol field
11339
11340       ip-tos: int (optional)
11341              IP header TOS field
11342
11343   Note
11344       optional  members  may  or may not appear in the flow mask depending if
11345       they're relevant to the flow mask.
11346
11347   Since
11348       2.4
11349
11350   RockerOfDpaFlowAction (Object)
11351       Rocker switch OF-DPA flow action
11352
11353   Members
11354       goto-tbl: int (optional)
11355              next table ID
11356
11357       group-id: int (optional)
11358              group ID
11359
11360       tunnel-lport: int (optional)
11361              tunnel logical port ID
11362
11363       vlan-id: int (optional)
11364              VLAN ID
11365
11366       new-vlan-id: int (optional)
11367              new VLAN ID
11368
11369       out-pport: int (optional)
11370              physical output port
11371
11372   Note
11373       optional members may or may not appear in the flow action depending  if
11374       they're relevant to the flow action.
11375
11376   Since
11377       2.4
11378
11379   RockerOfDpaFlow (Object)
11380       Rocker switch OF-DPA flow
11381
11382   Members
11383       cookie: int
11384              flow unique cookie ID
11385
11386       hits: int
11387              count of matches (hits) on flow
11388
11389       key: RockerOfDpaFlowKey
11390              flow key
11391
11392       mask: RockerOfDpaFlowMask
11393              flow mask
11394
11395       action: RockerOfDpaFlowAction
11396              flow action
11397
11398   Since
11399       2.4
11400
11401   query-rocker-of-dpa-flows (Command)
11402       Return rocker OF-DPA flow information.
11403
11404   Arguments
11405       name: string
11406              switch name
11407
11408       tbl-id: int (optional)
11409              flow  table ID.  If tbl-id is not specified, returns flow infor‐
11410              mation for all tables.
11411
11412   Returns
11413       rocker OF-DPA flow information
11414
11415   Since
11416       2.4
11417
11418   Example
11419          -> { "execute": "query-rocker-of-dpa-flows",
11420               "arguments": { "name": "sw1" } }
11421          <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0},
11422                            "hits": 138,
11423                            "cookie": 0,
11424                            "action": {"goto-tbl": 10},
11425                            "mask": {"in-pport": 4294901760}
11426                           },
11427                           {...more...},
11428             ]}
11429
11430   RockerOfDpaGroup (Object)
11431       Rocker switch OF-DPA group
11432
11433   Members
11434       id: int
11435              group unique ID
11436
11437       type: int
11438              group type
11439
11440       vlan-id: int (optional)
11441              VLAN ID
11442
11443       pport: int (optional)
11444              physical port number
11445
11446       index: int (optional)
11447              group index, unique with group type
11448
11449       out-pport: int (optional)
11450              output physical port number
11451
11452       group-id: int (optional)
11453              next group ID
11454
11455       set-vlan-id: int (optional)
11456              VLAN ID to set
11457
11458       pop-vlan: int (optional)
11459              pop VLAN headr from packet
11460
11461       group-ids: array of int (optional)
11462              list of next group IDs
11463
11464       set-eth-src: string (optional)
11465              set source MAC address in Ethernet header
11466
11467       set-eth-dst: string (optional)
11468              set destination MAC address in Ethernet header
11469
11470       ttl-check: int (optional)
11471              perform TTL check
11472
11473   Note
11474       optional members may or may  not  appear  in  the  group  depending  if
11475       they're relevant to the group type.
11476
11477   Since
11478       2.4
11479
11480   query-rocker-of-dpa-groups (Command)
11481       Return rocker OF-DPA group information.
11482
11483   Arguments
11484       name: string
11485              switch name
11486
11487       type: int (optional)
11488              group type.  If type is not specified, returns group information
11489              for all group types.
11490
11491   Returns
11492       rocker OF-DPA group information
11493
11494   Since
11495       2.4
11496
11497   Example
11498          -> { "execute": "query-rocker-of-dpa-groups",
11499               "arguments": { "name": "sw1" } }
11500          <- { "return": [ {"type": 0, "out-pport": 2,
11501                            "pport": 2, "vlan-id": 3841,
11502                            "pop-vlan": 1, "id": 251723778},
11503                           {"type": 0, "out-pport": 0,
11504                            "pport": 0, "vlan-id": 3841,
11505                            "pop-vlan": 1, "id": 251723776},
11506                           {"type": 0, "out-pport": 1,
11507                            "pport": 1, "vlan-id": 3840,
11508                            "pop-vlan": 1, "id": 251658241},
11509                           {"type": 0, "out-pport": 0,
11510                            "pport": 0, "vlan-id": 3840,
11511                            "pop-vlan": 1, "id": 251658240}
11512             ]}
11513

TPM (TRUSTED PLATFORM MODULE) DEVICES

11515   TpmModel (Enum)
11516       An enumeration of TPM models
11517
11518   Values
11519       tpm-tis
11520              TPM TIS model
11521
11522       tpm-crb
11523              TPM CRB model (since 2.12)
11524
11525       tpm-spapr
11526              TPM SPAPR model (since 5.0)
11527
11528   Since
11529       1.5
11530
11531   If
11532       CONFIG_TPM
11533
11534   query-tpm-models (Command)
11535       Return a list of supported TPM models
11536
11537   Returns
11538       a list of TpmModel
11539
11540   Since
11541       1.5
11542
11543   Example
11544          -> { "execute": "query-tpm-models" }
11545          <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] }
11546
11547   If
11548       CONFIG_TPM
11549
11550   TpmType (Enum)
11551       An enumeration of TPM types
11552
11553   Values
11554       passthrough
11555              TPM passthrough type
11556
11557       emulator
11558              Software Emulator TPM type Since: 2.11
11559
11560   Since
11561       1.5
11562
11563   If
11564       CONFIG_TPM
11565
11566   query-tpm-types (Command)
11567       Return a list of supported TPM types
11568
11569   Returns
11570       a list of TpmType
11571
11572   Since
11573       1.5
11574
11575   Example
11576          -> { "execute": "query-tpm-types" }
11577          <- { "return": [ "passthrough", "emulator" ] }
11578
11579   If
11580       CONFIG_TPM
11581
11582   TPMPassthroughOptions (Object)
11583       Information about the TPM passthrough type
11584
11585   Members
11586       path: string (optional)
11587              string describing the path used for accessing the TPM device
11588
11589       cancel-path: string (optional)
11590              string showing the TPM's sysfs cancel file for  cancellation  of
11591              TPM commands while they are executing
11592
11593   Since
11594       1.5
11595
11596   If
11597       CONFIG_TPM
11598
11599   TPMEmulatorOptions (Object)
11600       Information about the TPM emulator type
11601
11602   Members
11603       chardev: string
11604              Name of a unix socket chardev
11605
11606   Since
11607       2.11
11608
11609   If
11610       CONFIG_TPM
11611
11612   TPMPassthroughOptionsWrapper (Object)
11613   Members
11614       data: TPMPassthroughOptions
11615              Not documented
11616
11617   Since
11618       1.5
11619
11620   If
11621       CONFIG_TPM
11622
11623   TPMEmulatorOptionsWrapper (Object)
11624   Members
11625       data: TPMEmulatorOptions
11626              Not documented
11627
11628   Since
11629       2.11
11630
11631   If
11632       CONFIG_TPM
11633
11634   TpmTypeOptions (Object)
11635       A union referencing different TPM backend types' configuration options
11636
11637   Members
11638       type: TpmType
11639
11640              • 'passthrough'   The   configuration   options   for   the  TPM
11641                passthrough type
11642
11643              • 'emulator' The configuration options for TPM emulator  backend
11644                type
11645
11646       The members of TPMPassthroughOptionsWrapper when type is "passthrough"
11647
11648       The members of TPMEmulatorOptionsWrapper when type is "emulator"
11649
11650   Since
11651       1.5
11652
11653   If
11654       CONFIG_TPM
11655
11656   TPMInfo (Object)
11657       Information about the TPM
11658
11659   Members
11660       id: string
11661              The Id of the TPM
11662
11663       model: TpmModel
11664              The TPM frontend model
11665
11666       options: TpmTypeOptions
11667              The TPM (backend) type configuration options
11668
11669   Since
11670       1.5
11671
11672   If
11673       CONFIG_TPM
11674
11675   query-tpm (Command)
11676       Return information about the TPM device
11677
11678   Returns
11679       TPMInfo on success
11680
11681   Since
11682       1.5
11683
11684   Example
11685          -> { "execute": "query-tpm" }
11686          <- { "return":
11687               [
11688                 { "model": "tpm-tis",
11689                   "options":
11690                     { "type": "passthrough",
11691                       "data":
11692                         { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
11693                           "path": "/dev/tpm0"
11694                         }
11695                     },
11696                   "id": "tpm0"
11697                 }
11698               ]
11699             }
11700
11701   If
11702       CONFIG_TPM
11703

REMOTE DESKTOP

11705   set_password (Command)
11706       Sets the password of a remote display session.
11707
11708   Arguments
11709       protocol: string
11710
11711              • 'vnc' to modify the VNC server password
11712
11713              • 'spice' to modify the Spice server password
11714
11715       password: string
11716              the new password
11717
11718       connected: string (optional)
11719              how  to  handle existing clients when changing the password.  If
11720              nothing is specified, defaults to 'keep' 'fail' to fail the com‐
11721              mand  if clients are connected 'disconnect' to disconnect exist‐
11722              ing clients 'keep' to maintain existing clients
11723
11724   Returns
11725       • Nothing on success
11726
11727       • If Spice is not enabled, DeviceNotFound
11728
11729   Since
11730       0.14
11731
11732   Example
11733          -> { "execute": "set_password", "arguments": { "protocol": "vnc",
11734                                                         "password": "secret" } }
11735          <- { "return": {} }
11736
11737   expire_password (Command)
11738       Expire the password of a remote display server.
11739
11740   Arguments
11741       protocol: string
11742              the name of the remote display protocol 'vnc' or 'spice'
11743
11744       time: string
11745              when to expire the password.
11746
11747              • 'now' to expire the password immediately
11748
11749              • 'never' to cancel password expiration
11750
11751              • '+INT' where INT is the number of seconds from now (integer)
11752
11753              • 'INT' where INT is the absolute time in seconds
11754
11755   Returns
11756       • Nothing on success
11757
11758       • If protocol is 'spice' and Spice is not active, DeviceNotFound
11759
11760   Since
11761       0.14
11762
11763   Notes
11764       Time is relative to the server and currently there is no way to coordi‐
11765       nate  server  time  with client time.  It is not recommended to use the
11766       absolute time version of the time parameter unless you're sure you  are
11767       on the same machine as the QEMU instance.
11768
11769   Example
11770          -> { "execute": "expire_password", "arguments": { "protocol": "vnc",
11771                                                            "time": "+60" } }
11772          <- { "return": {} }
11773
11774   screendump (Command)
11775       Write a PPM of the VGA screen to a file.
11776
11777   Arguments
11778       filename: string
11779              the path of a new PPM file to store the image
11780
11781       device: string (optional)
11782              ID  of the display device that should be dumped. If this parame‐
11783              ter is missing, the primary display will be used. (Since 2.12)
11784
11785       head: int (optional)
11786              head to use in case the device supports multiple heads. If  this
11787              parameter  is  missing, head #0 will be used. Also note that the
11788              head can only be specified in conjunction with  the  device  ID.
11789              (Since 2.12)
11790
11791   Returns
11792       Nothing on success
11793
11794   Since
11795       0.14
11796
11797   Example
11798          -> { "execute": "screendump",
11799               "arguments": { "filename": "/tmp/image" } }
11800          <- { "return": {} }
11801
11802   Spice
11803   SpiceBasicInfo (Object)
11804       The basic information for SPICE network connection
11805
11806   Members
11807       host: string
11808              IP address
11809
11810       port: string
11811              port number
11812
11813       family: NetworkAddressFamily
11814              address family
11815
11816   Since
11817       2.1
11818
11819   If
11820       CONFIG_SPICE
11821
11822   SpiceServerInfo (Object)
11823       Information about a SPICE server
11824
11825   Members
11826       auth: string (optional)
11827              authentication method
11828
11829       The members of SpiceBasicInfo
11830
11831   Since
11832       2.1
11833
11834   If
11835       CONFIG_SPICE
11836
11837   SpiceChannel (Object)
11838       Information about a SPICE client channel.
11839
11840   Members
11841       connection-id: int
11842              SPICE  connection  id number.  All channels with the same id be‐
11843              long to the same SPICE session.
11844
11845       channel-type: int
11846              SPICE channel type number.  "1" is  the  main  control  channel,
11847              filter for this one if you want to track spice sessions only
11848
11849       channel-id: int
11850              SPICE  channel  ID number.  Usually "0", might be different when
11851              multiple channels of the same type exist, such as multiple  dis‐
11852              play channels in a multihead setup
11853
11854       tls: boolean
11855              true if the channel is encrypted, false otherwise.
11856
11857       The members of SpiceBasicInfo
11858
11859   Since
11860       0.14
11861
11862   If
11863       CONFIG_SPICE
11864
11865   SpiceQueryMouseMode (Enum)
11866       An enumeration of Spice mouse states.
11867
11868   Values
11869       client Mouse cursor position is determined by the client.
11870
11871       server Mouse cursor position is determined by the server.
11872
11873       unknown
11874              No  information  is available about mouse mode used by the spice
11875              server.
11876
11877   Note
11878       spice/enums.h has a SpiceMouseMode already, hence the name.
11879
11880   Since
11881       1.1
11882
11883   If
11884       CONFIG_SPICE
11885
11886   SpiceInfo (Object)
11887       Information about the SPICE session.
11888
11889   Members
11890       enabled: boolean
11891              true if the SPICE server is enabled, false otherwise
11892
11893       migrated: boolean
11894              true if the last guest migration completed and  spice  migration
11895              had completed as well. false otherwise. (since 1.4)
11896
11897       host: string (optional)
11898              The  hostname the SPICE server is bound to.  This depends on the
11899              name resolution on the host and may be an IP address.
11900
11901       port: int (optional)
11902              The SPICE server's port number.
11903
11904       compiled-version: string (optional)
11905              SPICE server version.
11906
11907       tls-port: int (optional)
11908              The SPICE server's TLS port number.
11909
11910       auth: string (optional)
11911              the current authentication type used by the server
11912
11913              • 'none'  if no authentication is being used
11914
11915              • 'spice' uses SASL or direct TLS authentication,  depending  on
11916                command line options
11917
11918       mouse-mode: SpiceQueryMouseMode
11919              The  mode  in which the mouse cursor is displayed currently. Can
11920              be determined by the client or the server, or unknown  if  spice
11921              server doesn't provide this information. (since: 1.1)
11922
11923       channels: array of SpiceChannel (optional)
11924              a list of SpiceChannel for each active spice channel
11925
11926   Since
11927       0.14
11928
11929   If
11930       CONFIG_SPICE
11931
11932   query-spice (Command)
11933       Returns information about the current SPICE server
11934
11935   Returns
11936       SpiceInfo
11937
11938   Since
11939       0.14
11940
11941   Example
11942          -> { "execute": "query-spice" }
11943          <- { "return": {
11944                   "enabled": true,
11945                   "auth": "spice",
11946                   "port": 5920,
11947                   "tls-port": 5921,
11948                   "host": "0.0.0.0",
11949                   "channels": [
11950                      {
11951                         "port": "54924",
11952                         "family": "ipv4",
11953                         "channel-type": 1,
11954                         "connection-id": 1804289383,
11955                         "host": "127.0.0.1",
11956                         "channel-id": 0,
11957                         "tls": true
11958                      },
11959                      {
11960                         "port": "36710",
11961                         "family": "ipv4",
11962                         "channel-type": 4,
11963                         "connection-id": 1804289383,
11964                         "host": "127.0.0.1",
11965                         "channel-id": 0,
11966                         "tls": false
11967                      },
11968                      [ ... more channels follow ... ]
11969                   ]
11970                }
11971             }
11972
11973   If
11974       CONFIG_SPICE
11975
11976   SPICE_CONNECTED (Event)
11977       Emitted when a SPICE client establishes a connection
11978
11979   Arguments
11980       server: SpiceBasicInfo
11981              server information
11982
11983       client: SpiceBasicInfo
11984              client information
11985
11986   Since
11987       0.14
11988
11989   Example
11990          <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
11991               "event": "SPICE_CONNECTED",
11992               "data": {
11993                 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
11994                 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
11995             }}
11996
11997   If
11998       CONFIG_SPICE
11999
12000   SPICE_INITIALIZED (Event)
12001       Emitted after initial handshake and authentication takes place (if any)
12002       and the SPICE channel is up and running
12003
12004   Arguments
12005       server: SpiceServerInfo
12006              server information
12007
12008       client: SpiceChannel
12009              client information
12010
12011   Since
12012       0.14
12013
12014   Example
12015          <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
12016               "event": "SPICE_INITIALIZED",
12017               "data": {"server": {"auth": "spice", "port": "5921",
12018                                   "family": "ipv4", "host": "127.0.0.1"},
12019                        "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
12020                                   "connection-id": 1804289383, "host": "127.0.0.1",
12021                                   "channel-id": 0, "tls": true}
12022             }}
12023
12024   If
12025       CONFIG_SPICE
12026
12027   SPICE_DISCONNECTED (Event)
12028       Emitted when the SPICE connection is closed
12029
12030   Arguments
12031       server: SpiceBasicInfo
12032              server information
12033
12034       client: SpiceBasicInfo
12035              client information
12036
12037   Since
12038       0.14
12039
12040   Example
12041          <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
12042               "event": "SPICE_DISCONNECTED",
12043               "data": {
12044                 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
12045                 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
12046             }}
12047
12048   If
12049       CONFIG_SPICE
12050
12051   SPICE_MIGRATE_COMPLETED (Event)
12052       Emitted when SPICE migration has completed
12053
12054   Since
12055       1.3
12056
12057   Example
12058          <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
12059               "event": "SPICE_MIGRATE_COMPLETED" }
12060
12061   If
12062       CONFIG_SPICE
12063
12064   VNC
12065   VncBasicInfo (Object)
12066       The basic information for vnc network connection
12067
12068   Members
12069       host: string
12070              IP address
12071
12072       service: string
12073              The service name of the vnc port. This may depend  on  the  host
12074              system's service database so symbolic names should not be relied
12075              on.
12076
12077       family: NetworkAddressFamily
12078              address family
12079
12080       websocket: boolean
12081              true in case the socket is a websocket (since 2.3).
12082
12083   Since
12084       2.1
12085
12086   If
12087       CONFIG_VNC
12088
12089   VncServerInfo (Object)
12090       The network connection information for server
12091
12092   Members
12093       auth: string (optional)
12094              authentication method used for  the  plain  (non-websocket)  VNC
12095              server
12096
12097       The members of VncBasicInfo
12098
12099   Since
12100       2.1
12101
12102   If
12103       CONFIG_VNC
12104
12105   VncClientInfo (Object)
12106       Information about a connected VNC client.
12107
12108   Members
12109       x509_dname: string (optional)
12110              If  x509 authentication is in use, the Distinguished Name of the
12111              client.
12112
12113       sasl_username: string (optional)
12114              If SASL authentication is in use, the SASL username used for au‐
12115              thentication.
12116
12117       The members of VncBasicInfo
12118
12119   Since
12120       0.14
12121
12122   If
12123       CONFIG_VNC
12124
12125   VncInfo (Object)
12126       Information about the VNC session.
12127
12128   Members
12129       enabled: boolean
12130              true if the VNC server is enabled, false otherwise
12131
12132       host: string (optional)
12133              The  hostname  the  VNC server is bound to.  This depends on the
12134              name resolution on the host and may be an IP address.
12135
12136       family: NetworkAddressFamily (optional)
12137
12138              • 'ipv6' if the host is listening for IPv6 connections
12139
12140              • 'ipv4' if the host is listening for IPv4 connections
12141
12142              • 'unix' if the host is listening on a unix domain socket
12143
12144              • 'unknown' otherwise
12145
12146       service: string (optional)
12147              The service name of the server's port.  This may depends on  the
12148              host  system's  service database so symbolic names should not be
12149              relied on.
12150
12151       auth: string (optional)
12152              the current authentication type used by the server
12153
12154              • 'none' if no authentication is being used
12155
12156              • 'vnc' if VNC authentication is being used
12157
12158              • 'vencrypt+plain' if VEncrypt is used with plain text authenti‐
12159                cation
12160
12161              • 'vencrypt+tls+none'  if  VEncrypt  is used with TLS and no au‐
12162                thentication
12163
12164              • 'vencrypt+tls+vnc' if VEncrypt is used with TLS  and  VNC  au‐
12165                thentication
12166
12167              • 'vencrypt+tls+plain'  if  VEncrypt  is used with TLS and plain
12168                text auth
12169
12170              • 'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
12171
12172              • 'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
12173
12174              • 'vencrypt+x509+plain' if VEncrypt is used with x509 and  plain
12175                text auth
12176
12177              • 'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
12178
12179              • 'vencrypt+x509+sasl'  if  VEncrypt  is used with x509 and SASL
12180                auth
12181
12182       clients: array of VncClientInfo (optional)
12183              a list of VncClientInfo of all currently connected clients
12184
12185   Since
12186       0.14
12187
12188   If
12189       CONFIG_VNC
12190
12191   VncPrimaryAuth (Enum)
12192       vnc primary authentication method.
12193
12194   Values
12195       none   Not documented
12196
12197       vnc    Not documented
12198
12199       ra2    Not documented
12200
12201       ra2ne  Not documented
12202
12203       tight  Not documented
12204
12205       ultra  Not documented
12206
12207       tls    Not documented
12208
12209       vencrypt
12210              Not documented
12211
12212       sasl   Not documented
12213
12214   Since
12215       2.3
12216
12217   If
12218       CONFIG_VNC
12219
12220   VncVencryptSubAuth (Enum)
12221       vnc sub authentication method with vencrypt.
12222
12223   Values
12224       plain  Not documented
12225
12226       tls-none
12227              Not documented
12228
12229       x509-none
12230              Not documented
12231
12232       tls-vnc
12233              Not documented
12234
12235       x509-vnc
12236              Not documented
12237
12238       tls-plain
12239              Not documented
12240
12241       x509-plain
12242              Not documented
12243
12244       tls-sasl
12245              Not documented
12246
12247       x509-sasl
12248              Not documented
12249
12250   Since
12251       2.3
12252
12253   If
12254       CONFIG_VNC
12255
12256   VncServerInfo2 (Object)
12257       The network connection information for server
12258
12259   Members
12260       auth: VncPrimaryAuth
12261              The current authentication type used by the servers
12262
12263       vencrypt: VncVencryptSubAuth (optional)
12264              The vencrypt sub authentication type used by the  servers,  only
12265              specified in case auth == vencrypt.
12266
12267       The members of VncBasicInfo
12268
12269   Since
12270       2.9
12271
12272   If
12273       CONFIG_VNC
12274
12275   VncInfo2 (Object)
12276       Information about a vnc server
12277
12278   Members
12279       id: string
12280              vnc server name.
12281
12282       server: array of VncServerInfo2
12283              A  list  of VncBasincInfo describing all listening sockets.  The
12284              list can be empty (in case the vnc server is disabled).  It also
12285              may  have  multiple  entries:  normal + websocket, possibly also
12286              ipv4 + ipv6 in the future.
12287
12288       clients: array of VncClientInfo
12289              A list of VncClientInfo of all currently connected clients.  The
12290              list can be empty, for obvious reasons.
12291
12292       auth: VncPrimaryAuth
12293              The  current  authentication  type  used  by  the non-websockets
12294              servers
12295
12296       vencrypt: VncVencryptSubAuth (optional)
12297              The vencrypt authentication type used by the servers, only spec‐
12298              ified in case auth == vencrypt.
12299
12300       display: string (optional)
12301              The display device the vnc server is linked to.
12302
12303   Since
12304       2.3
12305
12306   If
12307       CONFIG_VNC
12308
12309   query-vnc (Command)
12310       Returns information about the current VNC server
12311
12312   Returns
12313       VncInfo
12314
12315   Since
12316       0.14
12317
12318   Example
12319          -> { "execute": "query-vnc" }
12320          <- { "return": {
12321                   "enabled":true,
12322                   "host":"0.0.0.0",
12323                   "service":"50402",
12324                   "auth":"vnc",
12325                   "family":"ipv4",
12326                   "clients":[
12327                      {
12328                         "host":"127.0.0.1",
12329                         "service":"50401",
12330                         "family":"ipv4"
12331                      }
12332                   ]
12333                }
12334             }
12335
12336   If
12337       CONFIG_VNC
12338
12339   query-vnc-servers (Command)
12340       Returns a list of vnc servers.  The list can be empty.
12341
12342   Returns
12343       a list of VncInfo2
12344
12345   Since
12346       2.3
12347
12348   If
12349       CONFIG_VNC
12350
12351   change-vnc-password (Command)
12352       Change the VNC server password.
12353
12354   Arguments
12355       password: string
12356              the new password to use with VNC authentication
12357
12358   Since
12359       1.1
12360
12361   Notes
12362       An  empty  password  in this command will set the password to the empty
12363       string.  Existing clients are unaffected by executing this command.
12364
12365   If
12366       CONFIG_VNC
12367
12368   VNC_CONNECTED (Event)
12369       Emitted when a VNC client establishes a connection
12370
12371   Arguments
12372       server: VncServerInfo
12373              server information
12374
12375       client: VncBasicInfo
12376              client information
12377
12378   Note
12379       This event is emitted before any authentication takes place,  thus  the
12380       authentication ID is not provided
12381
12382   Since
12383       0.13
12384
12385   Example
12386          <- { "event": "VNC_CONNECTED",
12387               "data": {
12388                     "server": { "auth": "sasl", "family": "ipv4",
12389                                 "service": "5901", "host": "0.0.0.0" },
12390                     "client": { "family": "ipv4", "service": "58425",
12391                                 "host": "127.0.0.1" } },
12392               "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
12393
12394   If
12395       CONFIG_VNC
12396
12397   VNC_INITIALIZED (Event)
12398       Emitted  after  authentication takes place (if any) and the VNC session
12399       is made active
12400
12401   Arguments
12402       server: VncServerInfo
12403              server information
12404
12405       client: VncClientInfo
12406              client information
12407
12408   Since
12409       0.13
12410
12411   Example
12412          <-  { "event": "VNC_INITIALIZED",
12413                "data": {
12414                     "server": { "auth": "sasl", "family": "ipv4",
12415                                 "service": "5901", "host": "0.0.0.0"},
12416                     "client": { "family": "ipv4", "service": "46089",
12417                                 "host": "127.0.0.1", "sasl_username": "luiz" } },
12418                "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
12419
12420   If
12421       CONFIG_VNC
12422
12423   VNC_DISCONNECTED (Event)
12424       Emitted when the connection is closed
12425
12426   Arguments
12427       server: VncServerInfo
12428              server information
12429
12430       client: VncClientInfo
12431              client information
12432
12433   Since
12434       0.13
12435
12436   Example
12437          <- { "event": "VNC_DISCONNECTED",
12438               "data": {
12439                     "server": { "auth": "sasl", "family": "ipv4",
12440                                 "service": "5901", "host": "0.0.0.0" },
12441                     "client": { "family": "ipv4", "service": "58425",
12442                                 "host": "127.0.0.1", "sasl_username": "luiz" } },
12443               "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
12444
12445   If
12446       CONFIG_VNC
12447

INPUT

12449   MouseInfo (Object)
12450       Information about a mouse device.
12451
12452   Members
12453       name: string
12454              the name of the mouse device
12455
12456       index: int
12457              the index of the mouse device
12458
12459       current: boolean
12460              true if this device is currently receiving mouse events
12461
12462       absolute: boolean
12463              true if this device supports absolute coordinates as input
12464
12465   Since
12466       0.14
12467
12468   query-mice (Command)
12469       Returns information about each active mouse device
12470
12471   Returns
12472       a list of MouseInfo for each device
12473
12474   Since
12475       0.14
12476
12477   Example
12478          -> { "execute": "query-mice" }
12479          <- { "return": [
12480                   {
12481                      "name":"QEMU Microsoft Mouse",
12482                      "index":0,
12483                      "current":false,
12484                      "absolute":false
12485                   },
12486                   {
12487                      "name":"QEMU PS/2 Mouse",
12488                      "index":1,
12489                      "current":true,
12490                      "absolute":true
12491                   }
12492                ]
12493             }
12494
12495   QKeyCode (Enum)
12496       An enumeration of key name.
12497
12498       This is used by the send-key command.
12499
12500   Values
12501       unmapped
12502              since 2.0
12503
12504       pause  since 2.0
12505
12506       ro     since 2.4
12507
12508       kp_comma
12509              since 2.4
12510
12511       kp_equals
12512              since 2.6
12513
12514       power  since 2.6
12515
12516       hiragana
12517              since 2.9
12518
12519       henkan since 2.9
12520
12521       yen    since 2.9
12522
12523       sleep  since 2.10
12524
12525       wake   since 2.10
12526
12527       audionext
12528              since 2.10
12529
12530       audioprev
12531              since 2.10
12532
12533       audiostop
12534              since 2.10
12535
12536       audioplay
12537              since 2.10
12538
12539       audiomute
12540              since 2.10
12541
12542       volumeup
12543              since 2.10
12544
12545       volumedown
12546              since 2.10
12547
12548       mediaselect
12549              since 2.10
12550
12551       mail   since 2.10
12552
12553       calculator
12554              since 2.10
12555
12556       computer
12557              since 2.10
12558
12559       ac_home
12560              since 2.10
12561
12562       ac_back
12563              since 2.10
12564
12565       ac_forward
12566              since 2.10
12567
12568       ac_refresh
12569              since 2.10
12570
12571       ac_bookmarks
12572              since 2.10
12573
12574       muhenkan
12575              since 2.12
12576
12577       katakanahiragana
12578              since 2.12
12579
12580       lang1  since 6.1
12581
12582       lang2  since 6.1
12583
12584       shift  Not documented
12585
12586       shift_r
12587              Not documented
12588
12589       alt    Not documented
12590
12591       alt_r  Not documented
12592
12593       ctrl   Not documented
12594
12595       ctrl_r Not documented
12596
12597       menu   Not documented
12598
12599       esc    Not documented
12600
12601       1      Not documented
12602
12603       2      Not documented
12604
12605       3      Not documented
12606
12607       4      Not documented
12608
12609       5      Not documented
12610
12611       6      Not documented
12612
12613       7      Not documented
12614
12615       8      Not documented
12616
12617       9      Not documented
12618
12619       0      Not documented
12620
12621       minus  Not documented
12622
12623       equal  Not documented
12624
12625       backspace
12626              Not documented
12627
12628       tab    Not documented
12629
12630       q      Not documented
12631
12632       w      Not documented
12633
12634       e      Not documented
12635
12636       r      Not documented
12637
12638       t      Not documented
12639
12640       y      Not documented
12641
12642       u      Not documented
12643
12644       i      Not documented
12645
12646       o      Not documented
12647
12648       p      Not documented
12649
12650       bracket_left
12651              Not documented
12652
12653       bracket_right
12654              Not documented
12655
12656       ret    Not documented
12657
12658       a      Not documented
12659
12660       s      Not documented
12661
12662       d      Not documented
12663
12664       f      Not documented
12665
12666       g      Not documented
12667
12668       h      Not documented
12669
12670       j      Not documented
12671
12672       k      Not documented
12673
12674       l      Not documented
12675
12676       semicolon
12677              Not documented
12678
12679       apostrophe
12680              Not documented
12681
12682       grave_accent
12683              Not documented
12684
12685       backslash
12686              Not documented
12687
12688       z      Not documented
12689
12690       x      Not documented
12691
12692       c      Not documented
12693
12694       v      Not documented
12695
12696       b      Not documented
12697
12698       n      Not documented
12699
12700       m      Not documented
12701
12702       comma  Not documented
12703
12704       dot    Not documented
12705
12706       slash  Not documented
12707
12708       asterisk
12709              Not documented
12710
12711       spc    Not documented
12712
12713       caps_lock
12714              Not documented
12715
12716       f1     Not documented
12717
12718       f2     Not documented
12719
12720       f3     Not documented
12721
12722       f4     Not documented
12723
12724       f5     Not documented
12725
12726       f6     Not documented
12727
12728       f7     Not documented
12729
12730       f8     Not documented
12731
12732       f9     Not documented
12733
12734       f10    Not documented
12735
12736       num_lock
12737              Not documented
12738
12739       scroll_lock
12740              Not documented
12741
12742       kp_divide
12743              Not documented
12744
12745       kp_multiply
12746              Not documented
12747
12748       kp_subtract
12749              Not documented
12750
12751       kp_add Not documented
12752
12753       kp_enter
12754              Not documented
12755
12756       kp_decimal
12757              Not documented
12758
12759       sysrq  Not documented
12760
12761       kp_0   Not documented
12762
12763       kp_1   Not documented
12764
12765       kp_2   Not documented
12766
12767       kp_3   Not documented
12768
12769       kp_4   Not documented
12770
12771       kp_5   Not documented
12772
12773       kp_6   Not documented
12774
12775       kp_7   Not documented
12776
12777       kp_8   Not documented
12778
12779       kp_9   Not documented
12780
12781       less   Not documented
12782
12783       f11    Not documented
12784
12785       f12    Not documented
12786
12787       print  Not documented
12788
12789       home   Not documented
12790
12791       pgup   Not documented
12792
12793       pgdn   Not documented
12794
12795       end    Not documented
12796
12797       left   Not documented
12798
12799       up     Not documented
12800
12801       down   Not documented
12802
12803       right  Not documented
12804
12805       insert Not documented
12806
12807       delete Not documented
12808
12809       stop   Not documented
12810
12811       again  Not documented
12812
12813       props  Not documented
12814
12815       undo   Not documented
12816
12817       front  Not documented
12818
12819       copy   Not documented
12820
12821       open   Not documented
12822
12823       paste  Not documented
12824
12825       find   Not documented
12826
12827       cut    Not documented
12828
12829       lf     Not documented
12830
12831       help   Not documented
12832
12833       meta_l Not documented
12834
12835       meta_r Not documented
12836
12837       compose
12838              Not documented
12839       'sysrq' was mistakenly added to hack  around  the  fact  that  the  ps2
12840       driver  was not generating correct scancodes sequences when 'alt+print'
12841       was pressed. This flaw is now fixed and the 'sysrq' key serves no  fur‐
12842       ther  purpose. Any further use of 'sysrq' will be transparently changed
12843       to 'print', so they are effectively synonyms.
12844
12845   Since
12846       1.3
12847
12848   KeyValueKind (Enum)
12849   Values
12850       number Not documented
12851
12852       qcode  Not documented
12853
12854   Since
12855       1.3
12856
12857   IntWrapper (Object)
12858   Members
12859       data: int
12860              Not documented
12861
12862   Since
12863       1.3
12864
12865   QKeyCodeWrapper (Object)
12866   Members
12867       data: QKeyCode
12868              Not documented
12869
12870   Since
12871       1.3
12872
12873   KeyValue (Object)
12874       Represents a keyboard key.
12875
12876   Members
12877       type: KeyValueKind
12878              Not documented
12879
12880       The members of IntWrapper when type is "number"
12881
12882       The members of QKeyCodeWrapper when type is "qcode"
12883
12884   Since
12885       1.3
12886
12887   send-key (Command)
12888       Send keys to guest.
12889
12890   Arguments
12891       keys: array of KeyValue
12892              An array of KeyValue elements. All KeyValues in this  array  are
12893              simultaneously  sent  to  the  guest. A KeyValue.number value is
12894              sent directly to the guest, while KeyValue.qcode must be a valid
12895              QKeyCode value
12896
12897       hold-time: int (optional)
12898              time to delay key up events, milliseconds. Defaults to 100
12899
12900   Returns
12901       • Nothing on success
12902
12903       • If key is unknown or redundant, InvalidParameter
12904
12905   Since
12906       1.3
12907
12908   Example
12909          -> { "execute": "send-key",
12910               "arguments": { "keys": [ { "type": "qcode", "data": "ctrl" },
12911                                        { "type": "qcode", "data": "alt" },
12912                                        { "type": "qcode", "data": "delete" } ] } }
12913          <- { "return": {} }
12914
12915   InputButton (Enum)
12916       Button of a pointer input device (mouse, tablet).
12917
12918   Values
12919       side   front side button of a 5-button mouse (since 2.9)
12920
12921       extra  rear side button of a 5-button mouse (since 2.9)
12922
12923       left   Not documented
12924
12925       middle Not documented
12926
12927       right  Not documented
12928
12929       wheel-up
12930              Not documented
12931
12932       wheel-down
12933              Not documented
12934
12935   Since
12936       2.0
12937
12938   InputAxis (Enum)
12939       Position axis of a pointer input device (mouse, tablet).
12940
12941   Values
12942       x      Not documented
12943
12944       y      Not documented
12945
12946   Since
12947       2.0
12948
12949   InputKeyEvent (Object)
12950       Keyboard input event.
12951
12952   Members
12953       key: KeyValue
12954              Which key this event is for.
12955
12956       down: boolean
12957              True for key-down and false for key-up events.
12958
12959   Since
12960       2.0
12961
12962   InputBtnEvent (Object)
12963       Pointer button input event.
12964
12965   Members
12966       button: InputButton
12967              Which button this event is for.
12968
12969       down: boolean
12970              True for key-down and false for key-up events.
12971
12972   Since
12973       2.0
12974
12975   InputMoveEvent (Object)
12976       Pointer motion input event.
12977
12978   Members
12979       axis: InputAxis
12980              Which axis is referenced by value.
12981
12982       value: int
12983              Pointer position.  For absolute coordinates the valid range is 0
12984              -> 0x7ffff
12985
12986   Since
12987       2.0
12988
12989   InputEventKind (Enum)
12990   Values
12991       key    Not documented
12992
12993       btn    Not documented
12994
12995       rel    Not documented
12996
12997       abs    Not documented
12998
12999   Since
13000       2.0
13001
13002   InputKeyEventWrapper (Object)
13003   Members
13004       data: InputKeyEvent
13005              Not documented
13006
13007   Since
13008       2.0
13009
13010   InputBtnEventWrapper (Object)
13011   Members
13012       data: InputBtnEvent
13013              Not documented
13014
13015   Since
13016       2.0
13017
13018   InputMoveEventWrapper (Object)
13019   Members
13020       data: InputMoveEvent
13021              Not documented
13022
13023   Since
13024       2.0
13025
13026   InputEvent (Object)
13027       Input event union.
13028
13029   Members
13030       type: InputEventKind
13031              the input type, one of:
13032
13033              • 'key': Input event of Keyboard
13034
13035              • 'btn': Input event of pointer buttons
13036
13037              • 'rel': Input event of relative pointer motion
13038
13039              • 'abs': Input event of absolute pointer motion
13040
13041       The members of InputKeyEventWrapper when type is "key"
13042
13043       The members of InputBtnEventWrapper when type is "btn"
13044
13045       The members of InputMoveEventWrapper when type is "rel"
13046
13047       The members of InputMoveEventWrapper when type is "abs"
13048
13049   Since
13050       2.0
13051
13052   input-send-event (Command)
13053       Send input event(s) to guest.
13054
13055       The device and head parameters can be used to send the input  event  to
13056       specific  input  devices in case (a) multiple input devices of the same
13057       kind are added to the virtual machine and (b) you have configured input
13058       routing  (see docs/multiseat.txt) for those input devices.  The parame‐
13059       ters work exactly like the device and head properties of input devices.
13060       If  device  is  missing, only devices that have no input routing config
13061       are admissible.  If device is specified, both input  devices  with  and
13062       without  input  routing  config  are admissible, but devices with input
13063       routing config take precedence.
13064
13065   Arguments
13066       device: string (optional)
13067              display device to send event(s) to.
13068
13069       head: int (optional)
13070              head to send event(s) to, in case the  display  device  supports
13071              multiple scanouts.
13072
13073       events: array of InputEvent
13074              List of InputEvent union.
13075
13076   Returns
13077       Nothing on success.
13078
13079   Since
13080       2.6
13081
13082   Note
13083       The  consoles  are visible in the qom tree, under /backend/console[$in‐
13084       dex]. They have a device link and head property, so it is  possible  to
13085       map which console belongs to which device and display.
13086
13087   Example
13088          1. Press left mouse button.
13089
13090          -> { "execute": "input-send-event",
13091              "arguments": { "device": "video0",
13092                             "events": [ { "type": "btn",
13093                             "data" : { "down": true, "button": "left" } } ] } }
13094          <- { "return": {} }
13095
13096          -> { "execute": "input-send-event",
13097              "arguments": { "device": "video0",
13098                             "events": [ { "type": "btn",
13099                             "data" : { "down": false, "button": "left" } } ] } }
13100          <- { "return": {} }
13101
13102          2. Press ctrl-alt-del.
13103
13104          -> { "execute": "input-send-event",
13105               "arguments": { "events": [
13106                  { "type": "key", "data" : { "down": true,
13107                    "key": {"type": "qcode", "data": "ctrl" } } },
13108                  { "type": "key", "data" : { "down": true,
13109                    "key": {"type": "qcode", "data": "alt" } } },
13110                  { "type": "key", "data" : { "down": true,
13111                    "key": {"type": "qcode", "data": "delete" } } } ] } }
13112          <- { "return": {} }
13113
13114          3. Move mouse pointer to absolute coordinates (20000, 400).
13115
13116          -> { "execute": "input-send-event" ,
13117            "arguments": { "events": [
13118                         { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
13119                         { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
13120          <- { "return": {} }
13121
13122   DisplayGTK (Object)
13123       GTK display options.
13124
13125   Members
13126       grab-on-hover: boolean (optional)
13127              Grab keyboard input on mouse hover.
13128
13129       zoom-to-fit: boolean (optional)
13130              Zoom guest display to fit into the host window.  When turned off
13131              the host window will be resized instead.  In  case  the  display
13132              device  can notify the guest on window resizes (virtio-gpu) this
13133              will default to "on", assuming the guest will resize the display
13134              to  match the window size then.  Otherwise it defaults to "off".
13135              Since 3.1
13136
13137   Since
13138       2.12
13139
13140   DisplayEGLHeadless (Object)
13141       EGL headless display options.
13142
13143   Members
13144       rendernode: string (optional)
13145              Which DRM render node should  be  used.  Default  is  the  first
13146              available node on the host.
13147
13148   Since
13149       3.1
13150
13151   DisplayGLMode (Enum)
13152       Display OpenGL mode.
13153
13154   Values
13155       off    Disable OpenGL (default).
13156
13157       on     Use  OpenGL,  pick  context type automatically.  Would better be
13158              named 'auto' but is called 'on' for backward compatibility  with
13159              bool type.
13160
13161       core   Use OpenGL with Core (desktop) Context.
13162
13163       es     Use OpenGL with ES (embedded systems) Context.
13164
13165   Since
13166       3.0
13167
13168   DisplayCurses (Object)
13169       Curses display options.
13170
13171   Members
13172       charset: string (optional)
13173              Font charset used by guest (default: CP437).
13174
13175   Since
13176       4.0
13177
13178   DisplayType (Enum)
13179       Display (user interface) type.
13180
13181   Values
13182       default
13183              The  default  user interface, selecting from the first available
13184              of gtk, sdl, cocoa, and vnc.
13185
13186       none   No user interface or video output display. The guest will  still
13187              see  an  emulated graphics card, but its output will not be dis‐
13188              played to the QEMU user.
13189
13190       gtk (If: CONFIG_GTK)
13191              The GTK user interface.
13192
13193       sdl (If: CONFIG_SDL)
13194              The SDL user interface.
13195
13196       egl-headless (If: CONFIG_OPENGL and CONFIG_GBM)
13197              No user interface, offload GL operations to a local DRI  device.
13198              Graphical  display  need  to be paired with VNC or Spice. (Since
13199              3.1)
13200
13201       curses (If: CONFIG_CURSES)
13202              Display video output via curses.   For  graphics  device  models
13203              which  support a text mode, QEMU can display this output using a
13204              curses/ncurses interface. Nothing is displayed when the graphics
13205              device  is  in graphical mode or if the graphics device does not
13206              support a text mode. Generally only the VGA device  models  sup‐
13207              port text mode.
13208
13209       cocoa (If: CONFIG_COCOA)
13210              The Cocoa user interface.
13211
13212       spice-app (If: CONFIG_SPICE)
13213              Set up a Spice server and run the default associated application
13214              to connect to it. The server will redirect  the  serial  console
13215              and QEMU monitors. (Since 4.0)
13216
13217   Since
13218       2.12
13219
13220   DisplayOptions (Object)
13221       Display (user interface) options.
13222
13223   Members
13224       type: DisplayType
13225              Which DisplayType qemu should use.
13226
13227       full-screen: boolean (optional)
13228              Start user interface in fullscreen mode (default: off).
13229
13230       window-close: boolean (optional)
13231              Allow to quit qemu with window close button (default: on).
13232
13233       show-cursor: boolean (optional)
13234              Force showing the mouse cursor (default: off).  (since: 5.0)
13235
13236       gl: DisplayGLMode (optional)
13237              Enable OpenGL support (default: off).
13238
13239       The members of DisplayGTK when type is "gtk" (If: CONFIG_GTK)
13240
13241       The members of DisplayCurses when type is "curses" (If: CONFIG_CURSES)
13242
13243       The members of DisplayEGLHeadless when type is "egl-headless" (If: CON‐
13244       FIG_OPENGL and CONFIG_GBM)
13245
13246   Since
13247       2.12
13248
13249   query-display-options (Command)
13250       Returns information about display configuration
13251
13252   Returns
13253       DisplayOptions
13254
13255   Since
13256       3.1
13257
13258   DisplayReloadType (Enum)
13259       Available DisplayReload types.
13260
13261   Values
13262       vnc    VNC display
13263
13264   Since
13265       6.0
13266
13267   DisplayReloadOptionsVNC (Object)
13268       Specify the VNC reload options.
13269
13270   Members
13271       tls-certs: boolean (optional)
13272              reload tls certs or not.
13273
13274   Since
13275       6.0
13276
13277   DisplayReloadOptions (Object)
13278       Options of the display configuration reload.
13279
13280   Members
13281       type: DisplayReloadType
13282              Specify the display type.
13283
13284       The members of DisplayReloadOptionsVNC when type is "vnc"
13285
13286   Since
13287       6.0
13288
13289   display-reload (Command)
13290       Reload display configuration.
13291
13292   Arguments
13293       The members of DisplayReloadOptions
13294
13295   Returns
13296       Nothing on success.
13297
13298   Since
13299       6.0
13300
13301   Example
13302          -> { "execute": "display-reload",
13303               "arguments": { "type": "vnc", "tls-certs": true  } }
13304          <- { "return": {} }
13305

USER AUTHORIZATION

13307   QAuthZListPolicy (Enum)
13308       The authorization policy result
13309
13310   Values
13311       deny   deny access
13312
13313       allow  allow access
13314
13315   Since
13316       4.0
13317
13318   QAuthZListFormat (Enum)
13319       The authorization policy match format
13320
13321   Values
13322       exact  an exact string match
13323
13324       glob   string with ? and * shell wildcard support
13325
13326   Since
13327       4.0
13328
13329   QAuthZListRule (Object)
13330       A single authorization rule.
13331
13332   Members
13333       match: string
13334              a string or glob to match against a user identity
13335
13336       policy: QAuthZListPolicy
13337              the result to return if match evaluates to true
13338
13339       format: QAuthZListFormat (optional)
13340              the format of the match rule (default 'exact')
13341
13342   Since
13343       4.0
13344
13345   AuthZListProperties (Object)
13346       Properties for authz-list objects.
13347
13348   Members
13349       policy: QAuthZListPolicy (optional)
13350              Default policy to apply when no rule matches (default: deny)
13351
13352       rules: array of QAuthZListRule (optional)
13353              Authorization rules based on matching user
13354
13355   Since
13356       4.0
13357
13358   AuthZListFileProperties (Object)
13359       Properties for authz-listfile objects.
13360
13361   Members
13362       filename: string
13363              File name to load the configuration from. The file must  contain
13364              valid JSON for AuthZListProperties.
13365
13366       refresh: boolean (optional)
13367              If  true,  inotify  is  used  to monitor the file, automatically
13368              reloading changes. If an error occurs during reloading, all  au‐
13369              thorizations  will  fail  until  the  file  is next successfully
13370              loaded. (default: true if the binary was built with  CONFIG_INO‐
13371              TIFY1, false otherwise)
13372
13373   Since
13374       4.0
13375
13376   AuthZPAMProperties (Object)
13377       Properties for authz-pam objects.
13378
13379   Members
13380       service: string
13381              PAM service name to use for authorization
13382
13383   Since
13384       4.0
13385
13386   AuthZSimpleProperties (Object)
13387       Properties for authz-simple objects.
13388
13389   Members
13390       identity: string
13391              Identifies  the  allowed user. Its format depends on the network
13392              service that authorization object is associated with. For autho‐
13393              rizing  based on TLS x509 certificates, the identity must be the
13394              x509 distinguished name.
13395
13396   Since
13397       4.0
13398

MIGRATION

13400   MigrationStats (Object)
13401       Detailed migration status.
13402
13403   Members
13404       transferred: int
13405              amount of bytes already transferred to the target VM
13406
13407       remaining: int
13408              amount of bytes remaining to be transferred to the target VM
13409
13410       total: int
13411              total amount of bytes involved in the migration process
13412
13413       duplicate: int
13414              number of duplicate (zero) pages (since 1.2)
13415
13416       skipped: int
13417              number of skipped zero pages (since 1.5)
13418
13419       normal: int
13420              number of normal pages (since 1.2)
13421
13422       normal-bytes: int
13423              number of normal bytes sent (since 1.2)
13424
13425       dirty-pages-rate: int
13426              number of pages dirtied by second by the guest (since 1.3)
13427
13428       mbps: number
13429              throughput in megabits/sec. (since 1.6)
13430
13431       dirty-sync-count: int
13432              number of times that dirty ram was synchronized (since 2.1)
13433
13434       postcopy-requests: int
13435              The number of page requests received from the destination (since
13436              2.7)
13437
13438       page-size: int
13439              The  number of bytes per page for the various page-based statis‐
13440              tics (since 2.10)
13441
13442       multifd-bytes: int
13443              The number of bytes sent through multifd (since 3.0)
13444
13445       pages-per-second: int
13446              the number of memory pages transferred per second (Since 4.0)
13447
13448   Since
13449       0.14
13450
13451   XBZRLECacheStats (Object)
13452       Detailed XBZRLE migration cache statistics
13453
13454   Members
13455       cache-size: int
13456              XBZRLE cache size
13457
13458       bytes: int
13459              amount of bytes already transferred to the target VM
13460
13461       pages: int
13462              amount of pages transferred to the target VM
13463
13464       cache-miss: int
13465              number of cache miss
13466
13467       cache-miss-rate: number
13468              rate of cache miss (since 2.1)
13469
13470       encoding-rate: number
13471              rate of encoded bytes (since 5.1)
13472
13473       overflow: int
13474              number of overflows
13475
13476   Since
13477       1.2
13478
13479   CompressionStats (Object)
13480       Detailed migration compression statistics
13481
13482   Members
13483       pages: int
13484              amount of pages compressed and transferred to the target VM
13485
13486       busy: int
13487              count of times that no free thread  was  available  to  compress
13488              data
13489
13490       busy-rate: number
13491              rate of thread busy
13492
13493       compressed-size: int
13494              amount of bytes after compression
13495
13496       compression-rate: number
13497              rate of compressed size
13498
13499   Since
13500       3.1
13501
13502   MigrationStatus (Enum)
13503       An enumeration of migration status.
13504
13505   Values
13506       none   no migration has ever happened.
13507
13508       setup  migration process has been initiated.
13509
13510       cancelling
13511              in the process of cancelling migration.
13512
13513       cancelled
13514              cancelling migration is finished.
13515
13516       active in the process of doing migration.
13517
13518       postcopy-active
13519              like active, but now in postcopy mode. (since 2.5)
13520
13521       postcopy-paused
13522              during postcopy but paused. (since 3.0)
13523
13524       postcopy-recover
13525              trying to recover from a paused postcopy. (since 3.0)
13526
13527       completed
13528              migration is finished.
13529
13530       failed some error occurred during migration process.
13531
13532       colo   VM  is  in  the  process of fault tolerance, VM can not get into
13533              this state unless colo  capability  is  enabled  for  migration.
13534              (since 2.8)
13535
13536       pre-switchover
13537              Paused before device serialisation. (since 2.11)
13538
13539       device During  device serialisation when pause-before-switchover is en‐
13540              abled (since 2.11)
13541
13542       wait-unplug
13543              wait for device unplug request by  guest  OS  to  be  completed.
13544              (since 4.2)
13545
13546   Since
13547       2.3
13548
13549   VfioStats (Object)
13550       Detailed VFIO devices migration statistics
13551
13552   Members
13553       transferred: int
13554              amount of bytes transferred to the target VM by VFIO devices
13555
13556   Since
13557       5.2
13558
13559   MigrationInfo (Object)
13560       Information about current migration process.
13561
13562   Members
13563       status: MigrationStatus (optional)
13564              MigrationStatus  describing  the  current  migration status.  If
13565              this field is not returned, no migration process has been initi‐
13566              ated
13567
13568       ram: MigrationStats (optional)
13569              MigrationStats  containing  detailed  migration status, only re‐
13570              turned if status is 'active' or 'completed'(since 1.2)
13571
13572       disk: MigrationStats (optional)
13573              MigrationStats containing detailed disk migration  status,  only
13574              returned if status is 'active' and it is a block migration
13575
13576       xbzrle-cache: XBZRLECacheStats (optional)
13577              XBZRLECacheStats  containing  detailed  XBZRLE migration statis‐
13578              tics, only returned if XBZRLE feature is on and status  is  'ac‐
13579              tive' or 'completed' (since 1.2)
13580
13581       total-time: int (optional)
13582              total amount of milliseconds since migration started.  If migra‐
13583              tion has ended, it returns the total migration time. (since 1.2)
13584
13585       downtime: int (optional)
13586              only present when migration finishes correctly total downtime in
13587              milliseconds for the guest.  (since 1.3)
13588
13589       expected-downtime: int (optional)
13590              only present while migration is active expected downtime in mil‐
13591              liseconds for the guest in last walk of the dirty bitmap. (since
13592              1.3)
13593
13594       setup-time: int (optional)
13595              amount of setup time in milliseconds before the iterations begin
13596              but after the QMP command is issued. This is designed to provide
13597              an accounting of any activities (such as RDMA pinning) which may
13598              be expensive, but do not actually occur during the iterative mi‐
13599              gration rounds themselves. (since 1.6)
13600
13601       cpu-throttle-percentage: int (optional)
13602              percentage  of  time  guest  cpus  are  being  throttled  during
13603              auto-converge. This  is  only  present  when  auto-converge  has
13604              started throttling guest cpus. (Since 2.7)
13605
13606       error-desc: string (optional)
13607              the  human  readable  error  description  string, when status is
13608              'failed'. Clients should not attempt to parse the error strings.
13609              (Since 2.7)
13610
13611       postcopy-blocktime: int (optional)
13612              total  time  when all vCPU were blocked during postcopy live mi‐
13613              gration. This is only present when the postcopy-blocktime migra‐
13614              tion capability is enabled. (Since 3.0)
13615
13616       postcopy-vcpu-blocktime: array of int (optional)
13617              list  of  the postcopy blocktime per vCPU.  This is only present
13618              when the postcopy-blocktime  migration  capability  is  enabled.
13619              (Since 3.0)
13620
13621       compression: CompressionStats (optional)
13622              migration  compression  statistics, only returned if compression
13623              feature is on and status is 'active' or 'completed' (Since 3.1)
13624
13625       socket-address: array of SocketAddress (optional)
13626              Only used for tcp, to know what the real port is (Since 4.0)
13627
13628       vfio: VfioStats (optional)
13629              VfioStats containing detailed VFIO devices migration statistics,
13630              only  returned if VFIO device is present, migration is supported
13631              by all VFIO devices and status is 'active' or 'completed' (since
13632              5.2)
13633
13634       blocked-reasons: array of string (optional)
13635              A list of reasons an outgoing migration is blocked.  Present and
13636              non-empty when migration is blocked.  (since 6.0)
13637
13638   Since
13639       0.14
13640
13641   query-migrate (Command)
13642       Returns information about current migration process.  If  migration  is
13643       active  there will be another json-object with RAM migration status and
13644       if block migration is active another one with block migration status.
13645
13646   Returns
13647       MigrationInfo
13648
13649   Since
13650       0.14
13651
13652   Example
13653          1. Before the first migration
13654
13655          -> { "execute": "query-migrate" }
13656          <- { "return": {} }
13657
13658          2. Migration is done and has succeeded
13659
13660          -> { "execute": "query-migrate" }
13661          <- { "return": {
13662                  "status": "completed",
13663                  "total-time":12345,
13664                  "setup-time":12345,
13665                  "downtime":12345,
13666                  "ram":{
13667                    "transferred":123,
13668                    "remaining":123,
13669                    "total":246,
13670                    "duplicate":123,
13671                    "normal":123,
13672                    "normal-bytes":123456,
13673                    "dirty-sync-count":15
13674                  }
13675               }
13676             }
13677
13678          3. Migration is done and has failed
13679
13680          -> { "execute": "query-migrate" }
13681          <- { "return": { "status": "failed" } }
13682
13683          4. Migration is being performed and is not a block migration:
13684
13685          -> { "execute": "query-migrate" }
13686          <- {
13687                "return":{
13688                   "status":"active",
13689                   "total-time":12345,
13690                   "setup-time":12345,
13691                   "expected-downtime":12345,
13692                   "ram":{
13693                      "transferred":123,
13694                      "remaining":123,
13695                      "total":246,
13696                      "duplicate":123,
13697                      "normal":123,
13698                      "normal-bytes":123456,
13699                      "dirty-sync-count":15
13700                   }
13701                }
13702             }
13703
13704          5. Migration is being performed and is a block migration:
13705
13706          -> { "execute": "query-migrate" }
13707          <- {
13708                "return":{
13709                   "status":"active",
13710                   "total-time":12345,
13711                   "setup-time":12345,
13712                   "expected-downtime":12345,
13713                   "ram":{
13714                      "total":1057024,
13715                      "remaining":1053304,
13716                      "transferred":3720,
13717                      "duplicate":123,
13718                      "normal":123,
13719                      "normal-bytes":123456,
13720                      "dirty-sync-count":15
13721                   },
13722                   "disk":{
13723                      "total":20971520,
13724                      "remaining":20880384,
13725                      "transferred":91136
13726                   }
13727                }
13728             }
13729
13730          6. Migration is being performed and XBZRLE is active:
13731
13732          -> { "execute": "query-migrate" }
13733          <- {
13734                "return":{
13735                   "status":"active",
13736                   "total-time":12345,
13737                   "setup-time":12345,
13738                   "expected-downtime":12345,
13739                   "ram":{
13740                      "total":1057024,
13741                      "remaining":1053304,
13742                      "transferred":3720,
13743                      "duplicate":10,
13744                      "normal":3333,
13745                      "normal-bytes":3412992,
13746                      "dirty-sync-count":15
13747                   },
13748                   "xbzrle-cache":{
13749                      "cache-size":67108864,
13750                      "bytes":20971520,
13751                      "pages":2444343,
13752                      "cache-miss":2244,
13753                      "cache-miss-rate":0.123,
13754                      "encoding-rate":80.1,
13755                      "overflow":34434
13756                   }
13757                }
13758             }
13759
13760   MigrationCapability (Enum)
13761       Migration capabilities enumeration
13762
13763   Values
13764       xbzrle Migration supports xbzrle (Xor Based Zero Run Length  Encoding).
13765              This feature allows us to minimize migration traffic for certain
13766              work loads, by sending compressed difference of the pages
13767
13768       rdma-pin-all
13769              Controls whether or  not  the  entire  VM  memory  footprint  is
13770              mlock()'d  on  demand or all at once. Refer to docs/rdma.txt for
13771              usage.  Disabled by default. (since 2.0)
13772
13773       zero-blocks
13774              During storage migration encode blocks  of  zeroes  efficiently.
13775              This  essentially saves 1MB of zeroes per block on the wire. En‐
13776              abling requires source and target VM to support this feature. To
13777              enable  it  is sufficient to enable the capability on the source
13778              VM. The feature is disabled by default. (since 1.6)
13779
13780       compress
13781              Use multiple compression threads to accelerate  live  migration.
13782              This  feature can help to reduce the migration traffic, by send‐
13783              ing compressed pages. Please note that if  compress  and  xbzrle
13784              are  both  on, compress only takes effect in the ram bulk stage,
13785              after that, it will be disabled and only  xbzrle  takes  effect,
13786              this can help to minimize migration traffic. The feature is dis‐
13787              abled by default.  (since 2.4 )
13788
13789       events generate events for each migration state change (since 2.4 )
13790
13791       auto-converge
13792              If enabled, QEMU will automatically throttle down the  guest  to
13793              speed up convergence of RAM migration. (since 1.6)
13794
13795       postcopy-ram
13796              Start  executing  on  the migration target before all of RAM has
13797              been migrated, pulling the remaining pages along as needed.  The
13798              capacity must have the same setting on both source and target or
13799              migration will not even start. NOTE: If the migration fails dur‐
13800              ing postcopy the VM will fail.  (since 2.6)
13801
13802       x-colo If enabled, migration will never end, and the state of the VM on
13803              the primary side will be migrated continuously to the VM on sec‐
13804              ondary  side,  this process is called COarse-Grain LOck Stepping
13805              (COLO) for Non-stop Service. (since 2.8)
13806
13807       release-ram
13808              if enabled, qemu will free the migrated ram pages on the  source
13809              during postcopy-ram migration. (since 2.9)
13810
13811       block  If enabled, QEMU will also migrate the contents of all block de‐
13812              vices.  Default is disabled.  A possible alternative uses mirror
13813              jobs  to  a  builtin NBD server on the destination, which offers
13814              more flexibility.  (Since 2.10)
13815
13816       return-path
13817              If enabled, migration will use the return path even for precopy.
13818              (since 2.10)
13819
13820       pause-before-switchover
13821              Pause outgoing migration before serialising device state and be‐
13822              fore disabling block IO (since 2.11)
13823
13824       multifd
13825              Use more than one fd for migration (since 4.0)
13826
13827       dirty-bitmaps
13828              If enabled, QEMU will migrate named dirty bitmaps.  (since 2.12)
13829
13830       postcopy-blocktime
13831              Calculate downtime for postcopy live migration (since 3.0)
13832
13833       late-block-activate
13834              If enabled, the destination will not activate block devices (and
13835              thus  take  locks)  immediately at the end of migration.  (since
13836              3.0)
13837
13838       x-ignore-shared
13839              If enabled, QEMU will not migrate shared memory (since 4.0)
13840
13841       validate-uuid
13842              Send the UUID of the source to allow the destination  to  ensure
13843              it is the same. (since 4.2)
13844
13845       background-snapshot
13846              If  enabled,  the  migration stream will be a snapshot of the VM
13847              exactly at the point when the migration procedure starts. The VM
13848              RAM is saved with running VM.  (since 6.0)
13849
13850   Features
13851       unstable
13852              Members x-colo and x-ignore-shared are experimental.
13853
13854   Since
13855       1.2
13856
13857   MigrationCapabilityStatus (Object)
13858       Migration capability information
13859
13860   Members
13861       capability: MigrationCapability
13862              capability enum
13863
13864       state: boolean
13865              capability state bool
13866
13867   Since
13868       1.2
13869
13870   migrate-set-capabilities (Command)
13871       Enable/Disable the following migration capabilities (like xbzrle)
13872
13873   Arguments
13874       capabilities: array of MigrationCapabilityStatus
13875              json array of capability modifications to make
13876
13877   Since
13878       1.2
13879
13880   Example
13881          -> { "execute": "migrate-set-capabilities" , "arguments":
13882               { "capabilities": [ { "capability": "xbzrle", "state": true } ] } }
13883
13884   query-migrate-capabilities (Command)
13885       Returns information about the current migration capabilities status
13886
13887   Returns
13888       MigrationCapabilitiesStatus
13889
13890   Since
13891       1.2
13892
13893   Example
13894          -> { "execute": "query-migrate-capabilities" }
13895          <- { "return": [
13896                {"state": false, "capability": "xbzrle"},
13897                {"state": false, "capability": "rdma-pin-all"},
13898                {"state": false, "capability": "auto-converge"},
13899                {"state": false, "capability": "zero-blocks"},
13900                {"state": false, "capability": "compress"},
13901                {"state": true, "capability": "events"},
13902                {"state": false, "capability": "postcopy-ram"},
13903                {"state": false, "capability": "x-colo"}
13904             ]}
13905
13906   MultiFDCompression (Enum)
13907       An enumeration of multifd compression methods.
13908
13909   Values
13910       none   no compression.
13911
13912       zlib   use zlib compression method.
13913
13914       zstd (If: CONFIG_ZSTD)
13915              use zstd compression method.
13916
13917   Since
13918       5.0
13919
13920   BitmapMigrationBitmapAliasTransform (Object)
13921   Members
13922       persistent: boolean (optional)
13923              If  present, the bitmap will be made persistent or transient de‐
13924              pending on this parameter.
13925
13926   Since
13927       6.0
13928
13929   BitmapMigrationBitmapAlias (Object)
13930   Members
13931       name: string
13932              The name of the bitmap.
13933
13934       alias: string
13935              An alias name for migration (for example the bitmap name on  the
13936              opposite site).
13937
13938       transform: BitmapMigrationBitmapAliasTransform (optional)
13939              Allows the modification of the migrated bitmap.  (since 6.0)
13940
13941   Since
13942       5.2
13943
13944   BitmapMigrationNodeAlias (Object)
13945       Maps a block node name and the bitmaps it has to aliases for dirty bit‐
13946       map migration.
13947
13948   Members
13949       node-name: string
13950              A block node name.
13951
13952       alias: string
13953              An alias block node name for migration  (for  example  the  node
13954              name on the opposite site).
13955
13956       bitmaps: array of BitmapMigrationBitmapAlias
13957              Mappings for the bitmaps on this node.
13958
13959   Since
13960       5.2
13961
13962   MigrationParameter (Enum)
13963       Migration parameters enumeration
13964
13965   Values
13966       announce-initial
13967              Initial  delay  (in  milliseconds)  before sending the first an‐
13968              nounce (Since 4.0)
13969
13970       announce-max
13971              Maximum delay (in milliseconds) between packets in the announce‐
13972              ment (Since 4.0)
13973
13974       announce-rounds
13975              Number of self-announce packets sent after migration (Since 4.0)
13976
13977       announce-step
13978              Increase  in  delay (in milliseconds) between subsequent packets
13979              in the announcement (Since 4.0)
13980
13981       compress-level
13982              Set the compression level to be used in live migration, the com‐
13983              pression  level  is an integer between 0 and 9, where 0 means no
13984              compression, 1 means the best compression  speed,  and  9  means
13985              best compression ratio which will consume more CPU.
13986
13987       compress-threads
13988              Set  compression  thread count to be used in live migration, the
13989              compression thread count is an integer between 1 and 255.
13990
13991       compress-wait-thread
13992              Controls behavior when all  compression  threads  are  currently
13993              busy.  If  true (default), wait for a free compression thread to
13994              become available; otherwise, send the page uncompressed.  (Since
13995              3.1)
13996
13997       decompress-threads
13998              Set decompression thread count to be used in live migration, the
13999              decompression thread count is an integer between 1 and 255. Usu‐
14000              ally,  decompression is at least 4 times as fast as compression,
14001              so set the decompress-threads to the number about  1/4  of  com‐
14002              press-threads is adequate.
14003
14004       throttle-trigger-threshold
14005              The ratio of bytes_dirty_period and bytes_xfer_period to trigger
14006              throttling. It is expressed as percentage.  The default value is
14007              50. (Since 5.0)
14008
14009       cpu-throttle-initial
14010              Initial  percentage of time guest cpus are throttled when migra‐
14011              tion auto-converge is activated. The default value is 20. (Since
14012              2.7)
14013
14014       cpu-throttle-increment
14015              throttle  percentage  increase  each  time auto-converge detects
14016              that migration is not making progress. The default value is  10.
14017              (Since 2.7)
14018
14019       cpu-throttle-tailslow
14020              Make  CPU  throttling  slower at tail stage At the tail stage of
14021              throttling, the Guest is very sensitive to CPU percentage  while
14022              the  cpu-throttle -increment is excessive usually at tail stage.
14023              If this parameter is true, we will compute the  ideal  CPU  per‐
14024              centage used by the Guest, which may exactly make the dirty rate
14025              match the dirty rate threshold. Then we will  choose  a  smaller
14026              throttle increment between the one specified by cpu-throttle-in‐
14027              crement and the one generated by ideal CPU  percentage.   There‐
14028              fore,  it is compatible to traditional throttling, meanwhile the
14029              throttle increment won't be excessive at tail  stage.   The  de‐
14030              fault value is false. (Since 5.1)
14031
14032       tls-creds
14033              ID  of  the 'tls-creds' object that provides credentials for es‐
14034              tablishing a TLS connection over the migration data channel.  On
14035              the  outgoing side of the migration, the credentials must be for
14036              a 'client' endpoint, while for the incoming side the credentials
14037              must  be  for  a 'server' endpoint. Setting this will enable TLS
14038              for all migrations. The default is unset, resulting in unsecured
14039              migration at the QEMU level. (Since 2.7)
14040
14041       tls-hostname
14042              hostname  of the target host for the migration. This is required
14043              when using x509 based TLS credentials and the migration URI does
14044              not  already  include  a  hostname.  For example if using fd: or
14045              exec: based migration, the hostname must be provided so that the
14046              server's x509 certificate identity can be validated. (Since 2.7)
14047
14048       tls-authz
14049              ID  of  the 'authz' object subclass that provides access control
14050              checking of the TLS x509 certificate distinguished  name.   This
14051              object  is  only  resolved at time of use, so can be deleted and
14052              recreated on the fly while the migration server is  active.   If
14053              missing, it will default to denying access (Since 4.0)
14054
14055       max-bandwidth
14056              to  set  maximum speed for migration. maximum speed in bytes per
14057              second. (Since 2.8)
14058
14059       downtime-limit
14060              set maximum tolerated downtime for migration.  maximum  downtime
14061              in milliseconds (Since 2.8)
14062
14063       x-checkpoint-delay
14064              The  delay time (in ms) between two COLO checkpoints in periodic
14065              mode. (Since 2.8)
14066
14067       block-incremental
14068              Affects how much storage is migrated when  the  block  migration
14069              capability  is  enabled.  When false, the entire storage backing
14070              chain is migrated into a flattened  image  at  the  destination;
14071              when  true, only the active qcow2 layer is migrated and the des‐
14072              tination must already have access to the same backing  chain  as
14073              was used on the source.  (since 2.10)
14074
14075       multifd-channels
14076              Number of channels used to migrate data in parallel. This is the
14077              same number that the number of sockets used for migration.   The
14078              default value is 2 (since 4.0)
14079
14080       xbzrle-cache-size
14081              cache  size  to  be  used by XBZRLE migration.  It needs to be a
14082              multiple of the target page size and a power of 2 (Since 2.11)
14083
14084       max-postcopy-bandwidth
14085              Background transfer bandwidth during postcopy.   Defaults  to  0
14086              (unlimited).  In bytes per second.  (Since 3.0)
14087
14088       max-cpu-throttle
14089              maximum cpu throttle percentage.  Defaults to 99. (Since 3.1)
14090
14091       multifd-compression
14092              Which compression method to use.  Defaults to none. (Since 5.0)
14093
14094       multifd-zlib-level
14095              Set the compression level to be used in live migration, the com‐
14096              pression level is an integer between 0 and 9, where 0  means  no
14097              compression,  1  means  the  best compression speed, and 9 means
14098              best compression ratio which will consume more CPU.  Defaults to
14099              1. (Since 5.0)
14100
14101       multifd-zstd-level
14102              Set the compression level to be used in live migration, the com‐
14103              pression level is an integer between 0 and 20, where 0 means  no
14104              compression,  1  means  the best compression speed, and 20 means
14105              best compression ratio which will consume more CPU.  Defaults to
14106              1. (Since 5.0)
14107
14108       block-bitmap-mapping
14109              Maps  block nodes and bitmaps on them to aliases for the purpose
14110              of dirty bitmap migration.  Such aliases may for example be  the
14111              corresponding  names  on the opposite site.  The mapping must be
14112              one-to-one, but not necessarily complete:  On  the  source,  un‐
14113              mapped  bitmaps  and  all  bitmaps on unmapped nodes will be ig‐
14114              nored.  On the destination, encountering an  unmapped  alias  in
14115              the  incoming  migration stream will result in a report, and all
14116              further bitmap migration data will then be discarded.  Note that
14117              the destination does not know about bitmaps it does not receive,
14118              so there is no limitation or requirement regarding the number of
14119              bitmaps  received, or how they are named, or on which nodes they
14120              are placed.  By default (when  this  parameter  has  never  been
14121              set),  bitmap  names are mapped to themselves.  Nodes are mapped
14122              to their block device name if there is one, and  to  their  node
14123              name otherwise. (Since 5.2)
14124
14125   Features
14126       unstable
14127              Member x-checkpoint-delay is experimental.
14128
14129   Since
14130       2.4
14131
14132   MigrateSetParameters (Object)
14133   Members
14134       announce-initial: int (optional)
14135              Initial  delay  (in  milliseconds)  before sending the first an‐
14136              nounce (Since 4.0)
14137
14138       announce-max: int (optional)
14139              Maximum delay (in milliseconds) between packets in the announce‐
14140              ment (Since 4.0)
14141
14142       announce-rounds: int (optional)
14143              Number of self-announce packets sent after migration (Since 4.0)
14144
14145       announce-step: int (optional)
14146              Increase  in  delay (in milliseconds) between subsequent packets
14147              in the announcement (Since 4.0)
14148
14149       compress-level: int (optional)
14150              compression level
14151
14152       compress-threads: int (optional)
14153              compression thread count
14154
14155       compress-wait-thread: boolean (optional)
14156              Controls behavior when all  compression  threads  are  currently
14157              busy.  If  true (default), wait for a free compression thread to
14158              become available; otherwise, send the page uncompressed.  (Since
14159              3.1)
14160
14161       decompress-threads: int (optional)
14162              decompression thread count
14163
14164       throttle-trigger-threshold: int (optional)
14165              The ratio of bytes_dirty_period and bytes_xfer_period to trigger
14166              throttling. It is expressed as percentage.  The default value is
14167              50. (Since 5.0)
14168
14169       cpu-throttle-initial: int (optional)
14170              Initial  percentage of time guest cpus are throttled when migra‐
14171              tion auto-converge is  activated.   The  default  value  is  20.
14172              (Since 2.7)
14173
14174       cpu-throttle-increment: int (optional)
14175              throttle  percentage  increase  each  time auto-converge detects
14176              that migration is not making progress. The default value is  10.
14177              (Since 2.7)
14178
14179       cpu-throttle-tailslow: boolean (optional)
14180              Make  CPU  throttling  slower at tail stage At the tail stage of
14181              throttling, the Guest is very sensitive to CPU percentage  while
14182              the  cpu-throttle -increment is excessive usually at tail stage.
14183              If this parameter is true, we will compute the  ideal  CPU  per‐
14184              centage used by the Guest, which may exactly make the dirty rate
14185              match the dirty rate threshold. Then we will  choose  a  smaller
14186              throttle increment between the one specified by cpu-throttle-in‐
14187              crement and the one generated by ideal CPU  percentage.   There‐
14188              fore,  it is compatible to traditional throttling, meanwhile the
14189              throttle increment won't be excessive at tail  stage.   The  de‐
14190              fault value is false. (Since 5.1)
14191
14192       tls-creds: StrOrNull (optional)
14193              ID  of  the 'tls-creds' object that provides credentials for es‐
14194              tablishing a TLS connection over the migration data channel.  On
14195              the  outgoing side of the migration, the credentials must be for
14196              a 'client' endpoint, while for the incoming side the credentials
14197              must  be  for  a  'server' endpoint. Setting this to a non-empty
14198              string enables TLS for all migrations.  An  empty  string  means
14199              that  QEMU  will  use plain text mode for migration, rather than
14200              TLS (Since 2.9) Previously (since 2.7),  this  was  reported  by
14201              omitting tls-creds instead.
14202
14203       tls-hostname: StrOrNull (optional)
14204              hostname  of the target host for the migration. This is required
14205              when using x509 based TLS credentials and the migration URI does
14206              not  already  include  a  hostname.  For example if using fd: or
14207              exec: based migration, the hostname must be provided so that the
14208              server's x509 certificate identity can be validated. (Since 2.7)
14209              An empty string means that QEMU will use the hostname associated
14210              with  the  migration  URI, if any. (Since 2.9) Previously (since
14211              2.7), this was reported by omitting tls-hostname instead.
14212
14213       max-bandwidth: int (optional)
14214              to set maximum speed for migration. maximum speed in  bytes  per
14215              second. (Since 2.8)
14216
14217       downtime-limit: int (optional)
14218              set  maximum  tolerated downtime for migration. maximum downtime
14219              in milliseconds (Since 2.8)
14220
14221       x-checkpoint-delay: int (optional)
14222              the delay time between two COLO checkpoints. (Since 2.8)
14223
14224       block-incremental: boolean (optional)
14225              Affects how much storage is migrated when  the  block  migration
14226              capability  is  enabled.  When false, the entire storage backing
14227              chain is migrated into a flattened  image  at  the  destination;
14228              when  true, only the active qcow2 layer is migrated and the des‐
14229              tination must already have access to the same backing  chain  as
14230              was used on the source.  (since 2.10)
14231
14232       multifd-channels: int (optional)
14233              Number of channels used to migrate data in parallel. This is the
14234              same number that the number of sockets used for migration.   The
14235              default value is 2 (since 4.0)
14236
14237       xbzrle-cache-size: int (optional)
14238              cache  size  to  be  used by XBZRLE migration.  It needs to be a
14239              multiple of the target page size and a power of 2 (Since 2.11)
14240
14241       max-postcopy-bandwidth: int (optional)
14242              Background transfer bandwidth during postcopy.   Defaults  to  0
14243              (unlimited).  In bytes per second.  (Since 3.0)
14244
14245       max-cpu-throttle: int (optional)
14246              maximum  cpu  throttle  percentage.   The  default  value is 99.
14247              (Since 3.1)
14248
14249       multifd-compression: MultiFDCompression (optional)
14250              Which compression method to use.  Defaults to none. (Since 5.0)
14251
14252       multifd-zlib-level: int (optional)
14253              Set the compression level to be used in live migration, the com‐
14254              pression  level  is an integer between 0 and 9, where 0 means no
14255              compression, 1 means the best compression  speed,  and  9  means
14256              best compression ratio which will consume more CPU.  Defaults to
14257              1. (Since 5.0)
14258
14259       multifd-zstd-level: int (optional)
14260              Set the compression level to be used in live migration, the com‐
14261              pression  level is an integer between 0 and 20, where 0 means no
14262              compression, 1 means the best compression speed,  and  20  means
14263              best compression ratio which will consume more CPU.  Defaults to
14264              1. (Since 5.0)
14265
14266       block-bitmap-mapping: array of BitmapMigrationNodeAlias (optional)
14267              Maps block nodes and bitmaps on them to aliases for the  purpose
14268              of  dirty bitmap migration.  Such aliases may for example be the
14269              corresponding names on the opposite site.  The mapping  must  be
14270              one-to-one,  but  not  necessarily  complete: On the source, un‐
14271              mapped bitmaps and all bitmaps on unmapped  nodes  will  be  ig‐
14272              nored.   On  the  destination, encountering an unmapped alias in
14273              the incoming migration stream will result in a report,  and  all
14274              further bitmap migration data will then be discarded.  Note that
14275              the destination does not know about bitmaps it does not receive,
14276              so there is no limitation or requirement regarding the number of
14277              bitmaps received, or how they are named, or on which nodes  they
14278              are  placed.   By  default  (when  this parameter has never been
14279              set), bitmap names are mapped to themselves.  Nodes  are  mapped
14280              to  their  block  device name if there is one, and to their node
14281              name otherwise. (Since 5.2)
14282
14283       tls-authz: StrOrNull (optional)
14284              Not documented
14285
14286   Features
14287       unstable
14288              Member x-checkpoint-delay is experimental.
14289
14290   Since
14291       2.4
14292
14293   migrate-set-parameters (Command)
14294       Set various migration parameters.
14295
14296   Arguments
14297       The members of MigrateSetParameters
14298
14299   Since
14300       2.4
14301
14302   Example
14303          -> { "execute": "migrate-set-parameters" ,
14304               "arguments": { "compress-level": 1 } }
14305
14306   MigrationParameters (Object)
14307       The optional members aren't actually optional.
14308
14309   Members
14310       announce-initial: int (optional)
14311              Initial delay (in milliseconds) before  sending  the  first  an‐
14312              nounce (Since 4.0)
14313
14314       announce-max: int (optional)
14315              Maximum delay (in milliseconds) between packets in the announce‐
14316              ment (Since 4.0)
14317
14318       announce-rounds: int (optional)
14319              Number of self-announce packets sent after migration (Since 4.0)
14320
14321       announce-step: int (optional)
14322              Increase in delay (in milliseconds) between  subsequent  packets
14323              in the announcement (Since 4.0)
14324
14325       compress-level: int (optional)
14326              compression level
14327
14328       compress-threads: int (optional)
14329              compression thread count
14330
14331       compress-wait-thread: boolean (optional)
14332              Controls  behavior  when  all  compression threads are currently
14333              busy. If true (default), wait for a free compression  thread  to
14334              become  available; otherwise, send the page uncompressed. (Since
14335              3.1)
14336
14337       decompress-threads: int (optional)
14338              decompression thread count
14339
14340       throttle-trigger-threshold: int (optional)
14341              The ratio of bytes_dirty_period and bytes_xfer_period to trigger
14342              throttling. It is expressed as percentage.  The default value is
14343              50. (Since 5.0)
14344
14345       cpu-throttle-initial: int (optional)
14346              Initial percentage of time guest cpus are throttled when  migra‐
14347              tion auto-converge is activated.  (Since 2.7)
14348
14349       cpu-throttle-increment: int (optional)
14350              throttle  percentage  increase  each  time auto-converge detects
14351              that migration is not making progress. (Since 2.7)
14352
14353       cpu-throttle-tailslow: boolean (optional)
14354              Make CPU throttling slower at tail stage At the  tail  stage  of
14355              throttling,  the Guest is very sensitive to CPU percentage while
14356              the cpu-throttle -increment is excessive usually at tail  stage.
14357              If  this  parameter  is true, we will compute the ideal CPU per‐
14358              centage used by the Guest, which may exactly make the dirty rate
14359              match  the  dirty  rate threshold. Then we will choose a smaller
14360              throttle increment between the one specified by cpu-throttle-in‐
14361              crement  and  the one generated by ideal CPU percentage.  There‐
14362              fore, it is compatible to traditional throttling, meanwhile  the
14363              throttle  increment  won't  be excessive at tail stage.  The de‐
14364              fault value is false. (Since 5.1)
14365
14366       tls-creds: string (optional)
14367              ID of the 'tls-creds' object that provides credentials  for  es‐
14368              tablishing  a TLS connection over the migration data channel. On
14369              the outgoing side of the migration, the credentials must be  for
14370              a 'client' endpoint, while for the incoming side the credentials
14371              must be for a 'server' endpoint.  An  empty  string  means  that
14372              QEMU  will  use  plain  text mode for migration, rather than TLS
14373              (Since 2.7) Note: 2.8 reports this  by  omitting  tls-creds  in‐
14374              stead.
14375
14376       tls-hostname: string (optional)
14377              hostname  of the target host for the migration. This is required
14378              when using x509 based TLS credentials and the migration URI does
14379              not  already  include  a  hostname.  For example if using fd: or
14380              exec: based migration, the hostname must be provided so that the
14381              server's x509 certificate identity can be validated. (Since 2.7)
14382              An empty string means that QEMU will use the hostname associated
14383              with  the  migration  URI, if any. (Since 2.9) Note: 2.8 reports
14384              this by omitting tls-hostname instead.
14385
14386       tls-authz: string (optional)
14387              ID of the 'authz' object subclass that provides  access  control
14388              checking  of the TLS x509 certificate distinguished name. (Since
14389              4.0)
14390
14391       max-bandwidth: int (optional)
14392              to set maximum speed for migration. maximum speed in  bytes  per
14393              second. (Since 2.8)
14394
14395       downtime-limit: int (optional)
14396              set  maximum  tolerated downtime for migration. maximum downtime
14397              in milliseconds (Since 2.8)
14398
14399       x-checkpoint-delay: int (optional)
14400              the delay time between two COLO checkpoints. (Since 2.8)
14401
14402       block-incremental: boolean (optional)
14403              Affects how much storage is migrated when  the  block  migration
14404              capability  is  enabled.  When false, the entire storage backing
14405              chain is migrated into a flattened  image  at  the  destination;
14406              when  true, only the active qcow2 layer is migrated and the des‐
14407              tination must already have access to the same backing  chain  as
14408              was used on the source.  (since 2.10)
14409
14410       multifd-channels: int (optional)
14411              Number of channels used to migrate data in parallel. This is the
14412              same number that the number of sockets used for migration.   The
14413              default value is 2 (since 4.0)
14414
14415       xbzrle-cache-size: int (optional)
14416              cache  size  to  be  used by XBZRLE migration.  It needs to be a
14417              multiple of the target page size and a power of 2 (Since 2.11)
14418
14419       max-postcopy-bandwidth: int (optional)
14420              Background transfer bandwidth during postcopy.   Defaults  to  0
14421              (unlimited).  In bytes per second.  (Since 3.0)
14422
14423       max-cpu-throttle: int (optional)
14424              maximum cpu throttle percentage.  Defaults to 99.  (Since 3.1)
14425
14426       multifd-compression: MultiFDCompression (optional)
14427              Which compression method to use.  Defaults to none. (Since 5.0)
14428
14429       multifd-zlib-level: int (optional)
14430              Set the compression level to be used in live migration, the com‐
14431              pression level is an integer between 0 and 9, where 0  means  no
14432              compression,  1  means  the  best compression speed, and 9 means
14433              best compression ratio which will consume more CPU.  Defaults to
14434              1. (Since 5.0)
14435
14436       multifd-zstd-level: int (optional)
14437              Set the compression level to be used in live migration, the com‐
14438              pression level is an integer between 0 and 20, where 0 means  no
14439              compression,  1  means  the best compression speed, and 20 means
14440              best compression ratio which will consume more CPU.  Defaults to
14441              1. (Since 5.0)
14442
14443       block-bitmap-mapping: array of BitmapMigrationNodeAlias (optional)
14444              Maps  block nodes and bitmaps on them to aliases for the purpose
14445              of dirty bitmap migration.  Such aliases may for example be  the
14446              corresponding  names  on the opposite site.  The mapping must be
14447              one-to-one, but not necessarily complete:  On  the  source,  un‐
14448              mapped  bitmaps  and  all  bitmaps on unmapped nodes will be ig‐
14449              nored.  On the destination, encountering an  unmapped  alias  in
14450              the  incoming  migration stream will result in a report, and all
14451              further bitmap migration data will then be discarded.  Note that
14452              the destination does not know about bitmaps it does not receive,
14453              so there is no limitation or requirement regarding the number of
14454              bitmaps  received, or how they are named, or on which nodes they
14455              are placed.  By default (when  this  parameter  has  never  been
14456              set),  bitmap  names are mapped to themselves.  Nodes are mapped
14457              to their block device name if there is one, and  to  their  node
14458              name otherwise. (Since 5.2)
14459
14460   Features
14461       unstable
14462              Member x-checkpoint-delay is experimental.
14463
14464   Since
14465       2.4
14466
14467   query-migrate-parameters (Command)
14468       Returns information about the current migration parameters
14469
14470   Returns
14471       MigrationParameters
14472
14473   Since
14474       2.4
14475
14476   Example
14477          -> { "execute": "query-migrate-parameters" }
14478          <- { "return": {
14479                   "decompress-threads": 2,
14480                   "cpu-throttle-increment": 10,
14481                   "compress-threads": 8,
14482                   "compress-level": 1,
14483                   "cpu-throttle-initial": 20,
14484                   "max-bandwidth": 33554432,
14485                   "downtime-limit": 300
14486                }
14487             }
14488
14489   client_migrate_info (Command)
14490       Set  migration  information  for remote display.  This makes the server
14491       ask the client to automatically reconnect using the new parameters once
14492       migration finished successfully.  Only implemented for SPICE.
14493
14494   Arguments
14495       protocol: string
14496              must be "spice"
14497
14498       hostname: string
14499              migration target hostname
14500
14501       port: int (optional)
14502              spice tcp port for plaintext channels
14503
14504       tls-port: int (optional)
14505              spice tcp port for tls-secured channels
14506
14507       cert-subject: string (optional)
14508              server certificate subject
14509
14510   Since
14511       0.14
14512
14513   Example
14514          -> { "execute": "client_migrate_info",
14515               "arguments": { "protocol": "spice",
14516                              "hostname": "virt42.lab.kraxel.org",
14517                              "port": 1234 } }
14518          <- { "return": {} }
14519
14520   migrate-start-postcopy (Command)
14521       Followup  to  a  migration  command to switch the migration to postcopy
14522       mode.  The postcopy-ram capability must be set on both source and  des‐
14523       tination before the original migration command.
14524
14525   Since
14526       2.5
14527
14528   Example
14529          -> { "execute": "migrate-start-postcopy" }
14530          <- { "return": {} }
14531
14532   MIGRATION (Event)
14533       Emitted when a migration event happens
14534
14535   Arguments
14536       status: MigrationStatus
14537              MigrationStatus describing the current migration status.
14538
14539   Since
14540       2.4
14541
14542   Example
14543          <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
14544              "event": "MIGRATION",
14545              "data": {"status": "completed"} }
14546
14547   MIGRATION_PASS (Event)
14548       Emitted  from  the source side of a migration at the start of each pass
14549       (when it syncs the dirty bitmap)
14550
14551   Arguments
14552       pass: int
14553              An incrementing count (starting at 1 on the first pass)
14554
14555   Since
14556       2.6
14557
14558   Example
14559          { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
14560            "event": "MIGRATION_PASS", "data": {"pass": 2} }
14561
14562   COLOMessage (Enum)
14563       The message transmission between Primary side and Secondary side.
14564
14565   Values
14566       checkpoint-ready
14567              Secondary VM (SVM) is ready for checkpointing
14568
14569       checkpoint-request
14570              Primary VM (PVM) tells SVM to prepare for checkpointing
14571
14572       checkpoint-reply
14573              SVM gets PVM's checkpoint request
14574
14575       vmstate-send
14576              VM's state will be sent by PVM.
14577
14578       vmstate-size
14579              The total size of VMstate.
14580
14581       vmstate-received
14582              VM's state has been received by SVM.
14583
14584       vmstate-loaded
14585              VM's state has been loaded by SVM.
14586
14587   Since
14588       2.8
14589
14590   COLOMode (Enum)
14591       The COLO current mode.
14592
14593   Values
14594       none   COLO is disabled.
14595
14596       primary
14597              COLO node in primary side.
14598
14599       secondary
14600              COLO node in slave side.
14601
14602   Since
14603       2.8
14604
14605   FailoverStatus (Enum)
14606       An enumeration of COLO failover status
14607
14608   Values
14609       none   no failover has ever happened
14610
14611       require
14612              got failover requirement but not handled
14613
14614       active in the process of doing failover
14615
14616       completed
14617              finish the process of failover
14618
14619       relaunch
14620              restart the failover process, from 'none' -> 'completed'  (Since
14621              2.9)
14622
14623   Since
14624       2.8
14625
14626   COLO_EXIT (Event)
14627       Emitted  when  VM finishes COLO mode due to some errors happening or at
14628       the request of users.
14629
14630   Arguments
14631       mode: COLOMode
14632              report COLO mode when COLO exited.
14633
14634       reason: COLOExitReason
14635              describes the reason for the COLO exit.
14636
14637   Since
14638       3.1
14639
14640   Example
14641          <- { "timestamp": {"seconds": 2032141960, "microseconds": 417172},
14642               "event": "COLO_EXIT", "data": {"mode": "primary", "reason": "request" } }
14643
14644   COLOExitReason (Enum)
14645       The reason for a COLO exit.
14646
14647   Values
14648       none   failover has never happened. This state does not  occur  in  the
14649              COLO_EXIT   event,   and  is  only  visible  in  the  result  of
14650              query-colo-status.
14651
14652       request
14653              COLO exit is due to an external request.
14654
14655       error  COLO exit is due to an internal error.
14656
14657       processing
14658              COLO is currently handling a failover (since 4.0).
14659
14660   Since
14661       3.1
14662
14663   x-colo-lost-heartbeat (Command)
14664       Tell qemu that heartbeat is lost, request it to do takeover procedures.
14665       If  this  command  is  sent to the PVM, the Primary side will exit COLO
14666       mode.  If sent to the Secondary, the Secondary side will  run  failover
14667       work, then takes over server operation to become the service VM.
14668
14669   Features
14670       unstable
14671              This command is experimental.
14672
14673   Since
14674       2.8
14675
14676   Example
14677          -> { "execute": "x-colo-lost-heartbeat" }
14678          <- { "return": {} }
14679
14680   migrate_cancel (Command)
14681       Cancel the current executing migration process.
14682
14683   Returns
14684       nothing on success
14685
14686   Notes
14687       This command succeeds even if there is no migration process running.
14688
14689   Since
14690       0.14
14691
14692   Example
14693          -> { "execute": "migrate_cancel" }
14694          <- { "return": {} }
14695
14696   migrate-continue (Command)
14697       Continue migration when it's in a paused state.
14698
14699   Arguments
14700       state: MigrationStatus
14701              The state the migration is currently expected to be in
14702
14703   Returns
14704       nothing on success
14705
14706   Since
14707       2.11
14708
14709   Example
14710          -> { "execute": "migrate-continue" , "arguments":
14711               { "state": "pre-switchover" } }
14712          <- { "return": {} }
14713
14714   migrate (Command)
14715       Migrates the current running guest to another Virtual Machine.
14716
14717   Arguments
14718       uri: string
14719              the Uniform Resource Identifier of the destination VM
14720
14721       blk: boolean (optional)
14722              do block migration (full disk copy)
14723
14724       inc: boolean (optional)
14725              incremental disk copy migration
14726
14727       detach: boolean (optional)
14728              this  argument  exists only for compatibility reasons and is ig‐
14729              nored by QEMU
14730
14731       resume: boolean (optional)
14732              resume one paused migration, default "off". (since 3.0)
14733
14734   Returns
14735       nothing on success
14736
14737   Since
14738       0.14
14739
14740   Notes
14741       1. The 'query-migrate' command should  be  used  to  check  migration's
14742          progress and final result (this information is provided by the 'sta‐
14743          tus' member)
14744
14745       2. All boolean arguments default to false
14746
14747       3. The user Monitor's "detach" argument is invalid in  QMP  and  should
14748          not be used
14749
14750   Example
14751          -> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
14752          <- { "return": {} }
14753
14754   migrate-incoming (Command)
14755       Start  an incoming migration, the qemu must have been started with -in‐
14756       coming defer
14757
14758   Arguments
14759       uri: string
14760              The Uniform Resource Identifier identifying the  source  or  ad‐
14761              dress to listen on
14762
14763   Returns
14764       nothing on success
14765
14766   Since
14767       2.3
14768
14769   Notes
14770       1. It's  a  bad  idea to use a string for the uri, but it needs to stay
14771          compatible with -incoming and the format of the uri is  already  ex‐
14772          posed above libvirt.
14773
14774       2. QEMU  must be started with -incoming defer to allow migrate-incoming
14775          to be used.
14776
14777       3. The uri format is the same as for -incoming
14778
14779   Example
14780          -> { "execute": "migrate-incoming",
14781               "arguments": { "uri": "tcp::4446" } }
14782          <- { "return": {} }
14783
14784   xen-save-devices-state (Command)
14785       Save the state of all devices to file. The RAM and the block devices of
14786       the VM are not saved by this command.
14787
14788   Arguments
14789       filename: string
14790              the file to save the state of the devices to as binary data. See
14791              xen-save-devices-state.txt for a description of the binary  for‐
14792              mat.
14793
14794       live: boolean (optional)
14795              Optional argument to ask QEMU to treat this command as part of a
14796              live migration. Default to true. (since 2.11)
14797
14798   Returns
14799       Nothing on success
14800
14801   Since
14802       1.1
14803
14804   Example
14805          -> { "execute": "xen-save-devices-state",
14806               "arguments": { "filename": "/tmp/save" } }
14807          <- { "return": {} }
14808
14809   xen-set-global-dirty-log (Command)
14810       Enable or disable the global dirty log mode.
14811
14812   Arguments
14813       enable: boolean
14814              true to enable, false to disable.
14815
14816   Returns
14817       nothing
14818
14819   Since
14820       1.3
14821
14822   Example
14823          -> { "execute": "xen-set-global-dirty-log",
14824               "arguments": { "enable": true } }
14825          <- { "return": {} }
14826
14827   xen-load-devices-state (Command)
14828       Load the state of all devices from file. The RAM and the block  devices
14829       of the VM are not loaded by this command.
14830
14831   Arguments
14832       filename: string
14833              the  file  to load the state of the devices from as binary data.
14834              See xen-save-devices-state.txt for a description of  the  binary
14835              format.
14836
14837   Since
14838       2.7
14839
14840   Example
14841          -> { "execute": "xen-load-devices-state",
14842               "arguments": { "filename": "/tmp/resume" } }
14843          <- { "return": {} }
14844
14845   xen-set-replication (Command)
14846       Enable or disable replication.
14847
14848   Arguments
14849       enable: boolean
14850              true to enable, false to disable.
14851
14852       primary: boolean
14853              true for primary or false for secondary.
14854
14855       failover: boolean (optional)
14856              true  to  do failover, false to stop. but cannot be specified if
14857              'enable' is true. default value is false.
14858
14859   Returns
14860       nothing.
14861
14862   Example
14863          -> { "execute": "xen-set-replication",
14864               "arguments": {"enable": true, "primary": false} }
14865          <- { "return": {} }
14866
14867   Since
14868       2.9
14869
14870   If
14871       CONFIG_REPLICATION
14872
14873   ReplicationStatus (Object)
14874       The result format for 'query-xen-replication-status'.
14875
14876   Members
14877       error: boolean
14878              true if an error happened, false if replication is normal.
14879
14880       desc: string (optional)
14881              the human readable  error  description  string,  when  error  is
14882              'true'.
14883
14884   Since
14885       2.9
14886
14887   If
14888       CONFIG_REPLICATION
14889
14890   query-xen-replication-status (Command)
14891       Query replication status while the vm is running.
14892
14893   Returns
14894       A ReplicationResult object showing the status.
14895
14896   Example
14897          -> { "execute": "query-xen-replication-status" }
14898          <- { "return": { "error": false } }
14899
14900   Since
14901       2.9
14902
14903   If
14904       CONFIG_REPLICATION
14905
14906   xen-colo-do-checkpoint (Command)
14907       Xen uses this command to notify replication to trigger a checkpoint.
14908
14909   Returns
14910       nothing.
14911
14912   Example
14913          -> { "execute": "xen-colo-do-checkpoint" }
14914          <- { "return": {} }
14915
14916   Since
14917       2.9
14918
14919   If
14920       CONFIG_REPLICATION
14921
14922   COLOStatus (Object)
14923       The result format for 'query-colo-status'.
14924
14925   Members
14926       mode: COLOMode
14927              COLO  running  mode.  If COLO is running, this field will return
14928              'primary' or 'secondary'.
14929
14930       last-mode: COLOMode
14931              COLO last running mode. If COLO is running, this field will  re‐
14932              turn  same like mode field, after failover we can use this field
14933              to get last colo mode. (since 4.0)
14934
14935       reason: COLOExitReason
14936              describes the reason for the COLO exit.
14937
14938   Since
14939       3.1
14940
14941   query-colo-status (Command)
14942       Query COLO status while the vm is running.
14943
14944   Returns
14945       A COLOStatus object showing the status.
14946
14947   Example
14948          -> { "execute": "query-colo-status" }
14949          <- { "return": { "mode": "primary", "reason": "request" } }
14950
14951   Since
14952       3.1
14953
14954   migrate-recover (Command)
14955       Provide a recovery migration stream URI.
14956
14957   Arguments
14958       uri: string
14959              the URI to be used for the recovery of migration stream.
14960
14961   Returns
14962       nothing.
14963
14964   Example
14965          -> { "execute": "migrate-recover",
14966               "arguments": { "uri": "tcp:192.168.1.200:12345" } }
14967          <- { "return": {} }
14968
14969   Since
14970       3.0
14971
14972   migrate-pause (Command)
14973       Pause a migration.  Currently it only supports postcopy.
14974
14975   Returns
14976       nothing.
14977
14978   Example
14979          -> { "execute": "migrate-pause" }
14980          <- { "return": {} }
14981
14982   Since
14983       3.0
14984
14985   UNPLUG_PRIMARY (Event)
14986       Emitted from source  side  of  a  migration  when  migration  state  is
14987       WAIT_UNPLUG.  Device  was  unplugged by guest operating system.  Device
14988       resources in QEMU are kept on standby to be able to re-plug it in  case
14989       of migration failure.
14990
14991   Arguments
14992       device-id: string
14993              QEMU device id of the unplugged device
14994
14995   Since
14996       4.2
14997
14998   Example
14999          {"event": "UNPLUG_PRIMARY", "data": {"device-id": "hostdev0"} }
15000
15001   DirtyRateVcpu (Object)
15002       Dirty rate of vcpu.
15003
15004   Members
15005       id: int
15006              vcpu index.
15007
15008       dirty-rate: int
15009              dirty rate.
15010
15011   Since
15012       6.2
15013
15014   DirtyRateStatus (Enum)
15015       An enumeration of dirtyrate status.
15016
15017   Values
15018       unstarted
15019              the dirtyrate thread has not been started.
15020
15021       measuring
15022              the dirtyrate thread is measuring.
15023
15024       measured
15025              the dirtyrate thread has measured and results are available.
15026
15027   Since
15028       5.2
15029
15030   DirtyRateMeasureMode (Enum)
15031       An enumeration of mode of measuring dirtyrate.
15032
15033   Values
15034       page-sampling
15035              calculate dirtyrate by sampling pages.
15036
15037       dirty-ring
15038              calculate dirtyrate by dirty ring.
15039
15040       dirty-bitmap
15041              calculate dirtyrate by dirty bitmap.
15042
15043   Since
15044       6.2
15045
15046   DirtyRateInfo (Object)
15047       Information about current dirty page rate of vm.
15048
15049   Members
15050       dirty-rate: int (optional)
15051              an  estimate  of the dirty page rate of the VM in units of MB/s,
15052              present only when estimating the rate has completed.
15053
15054       status: DirtyRateStatus
15055              status containing dirtyrate query status includes 'unstarted' or
15056              'measuring' or 'measured'
15057
15058       start-time: int
15059              start time in units of second for calculation
15060
15061       calc-time: int
15062              time in units of second for sample dirty pages
15063
15064       sample-pages: int
15065              page  count  per  GB for sample dirty pages the default value is
15066              512 (since 6.1)
15067
15068       mode: DirtyRateMeasureMode
15069              mode  containing  method   of   calculate   dirtyrate   includes
15070              'page-sampling' and 'dirty-ring' (Since 6.2)
15071
15072       vcpu-dirty-rate: array of DirtyRateVcpu (optional)
15073              dirtyrate for each vcpu if dirty-ring mode specified (Since 6.2)
15074
15075   Since
15076       5.2
15077
15078   calc-dirty-rate (Command)
15079       start calculating dirty page rate for vm
15080
15081   Arguments
15082       calc-time: int
15083              time in units of second for sample dirty pages
15084
15085       sample-pages: int (optional)
15086              page  count  per  GB for sample dirty pages the default value is
15087              512 (since 6.1)
15088
15089       mode: DirtyRateMeasureMode (optional)
15090              mechanism of calculating dirtyrate includes 'page-sampling'  and
15091              'dirty-ring' (Since 6.1)
15092
15093   Since
15094       5.2
15095
15096   Example
15097          {"command": "calc-dirty-rate", "data": {"calc-time": 1,
15098                                                    'sample-pages': 512} }
15099
15100   query-dirty-rate (Command)
15101       query dirty page rate in units of MB/s for vm
15102
15103   Since
15104       5.2
15105
15106   snapshot-save (Command)
15107       Save a VM snapshot
15108
15109   Arguments
15110       job-id: string
15111              identifier for the newly created job
15112
15113       tag: string
15114              name of the snapshot to create
15115
15116       vmstate: string
15117              block device node name to save vmstate to
15118
15119       devices: array of string
15120              list of block device node names to save a snapshot to
15121       Applications  should not assume that the snapshot save is complete when
15122       this command returns. The job commands / events must be used to  deter‐
15123       mine completion and to fetch details of any errors that arise.
15124
15125       Note that execution of the guest CPUs may be stopped during the time it
15126       takes to save the snapshot. A future version of QEMU  may  ensure  CPUs
15127       are executing continuously.
15128
15129       It  is strongly recommended that devices contain all writable block de‐
15130       vice nodes if a consistent snapshot is required.
15131
15132       If tag already exists, an error will be reported
15133
15134   Returns
15135       nothing
15136
15137   Example
15138          -> { "execute": "snapshot-save",
15139               "data": {
15140                  "job-id": "snapsave0",
15141                  "tag": "my-snap",
15142                  "vmstate": "disk0",
15143                  "devices": ["disk0", "disk1"]
15144               }
15145             }
15146          <- { "return": { } }
15147          <- {"event": "JOB_STATUS_CHANGE",
15148              "data": {"status": "created", "id": "snapsave0"}}
15149          <- {"event": "JOB_STATUS_CHANGE",
15150              "data": {"status": "running", "id": "snapsave0"}}
15151          <- {"event": "STOP"}
15152          <- {"event": "RESUME"}
15153          <- {"event": "JOB_STATUS_CHANGE",
15154              "data": {"status": "waiting", "id": "snapsave0"}}
15155          <- {"event": "JOB_STATUS_CHANGE",
15156              "data": {"status": "pending", "id": "snapsave0"}}
15157          <- {"event": "JOB_STATUS_CHANGE",
15158              "data": {"status": "concluded", "id": "snapsave0"}}
15159          -> {"execute": "query-jobs"}
15160          <- {"return": [{"current-progress": 1,
15161                          "status": "concluded",
15162                          "total-progress": 1,
15163                          "type": "snapshot-save",
15164                          "id": "snapsave0"}]}
15165
15166   Since
15167       6.0
15168
15169   snapshot-load (Command)
15170       Load a VM snapshot
15171
15172   Arguments
15173       job-id: string
15174              identifier for the newly created job
15175
15176       tag: string
15177              name of the snapshot to load.
15178
15179       vmstate: string
15180              block device node name to load vmstate from
15181
15182       devices: array of string
15183              list of block device node names to load a snapshot from
15184       Applications should not assume that the snapshot load is complete  when
15185       this  command returns. The job commands / events must be used to deter‐
15186       mine completion and to fetch details of any errors that arise.
15187
15188       Note that execution of the guest CPUs will be stopped during  the  time
15189       it takes to load the snapshot.
15190
15191       It  is strongly recommended that devices contain all writable block de‐
15192       vice nodes that can have changed since the original snapshot-save  com‐
15193       mand execution.
15194
15195   Returns
15196       nothing
15197
15198   Example
15199          -> { "execute": "snapshot-load",
15200               "data": {
15201                  "job-id": "snapload0",
15202                  "tag": "my-snap",
15203                  "vmstate": "disk0",
15204                  "devices": ["disk0", "disk1"]
15205               }
15206             }
15207          <- { "return": { } }
15208          <- {"event": "JOB_STATUS_CHANGE",
15209              "data": {"status": "created", "id": "snapload0"}}
15210          <- {"event": "JOB_STATUS_CHANGE",
15211              "data": {"status": "running", "id": "snapload0"}}
15212          <- {"event": "STOP"}
15213          <- {"event": "RESUME"}
15214          <- {"event": "JOB_STATUS_CHANGE",
15215              "data": {"status": "waiting", "id": "snapload0"}}
15216          <- {"event": "JOB_STATUS_CHANGE",
15217              "data": {"status": "pending", "id": "snapload0"}}
15218          <- {"event": "JOB_STATUS_CHANGE",
15219              "data": {"status": "concluded", "id": "snapload0"}}
15220          -> {"execute": "query-jobs"}
15221          <- {"return": [{"current-progress": 1,
15222                          "status": "concluded",
15223                          "total-progress": 1,
15224                          "type": "snapshot-load",
15225                          "id": "snapload0"}]}
15226
15227   Since
15228       6.0
15229
15230   snapshot-delete (Command)
15231       Delete a VM snapshot
15232
15233   Arguments
15234       job-id: string
15235              identifier for the newly created job
15236
15237       tag: string
15238              name of the snapshot to delete.
15239
15240       devices: array of string
15241              list of block device node names to delete a snapshot from
15242       Applications  should  not  assume  that the snapshot delete is complete
15243       when this command returns. The job commands / events must  be  used  to
15244       determine completion and to fetch details of any errors that arise.
15245
15246   Returns
15247       nothing
15248
15249   Example
15250          -> { "execute": "snapshot-delete",
15251               "data": {
15252                  "job-id": "snapdelete0",
15253                  "tag": "my-snap",
15254                  "devices": ["disk0", "disk1"]
15255               }
15256             }
15257          <- { "return": { } }
15258          <- {"event": "JOB_STATUS_CHANGE",
15259              "data": {"status": "created", "id": "snapdelete0"}}
15260          <- {"event": "JOB_STATUS_CHANGE",
15261              "data": {"status": "running", "id": "snapdelete0"}}
15262          <- {"event": "JOB_STATUS_CHANGE",
15263              "data": {"status": "waiting", "id": "snapdelete0"}}
15264          <- {"event": "JOB_STATUS_CHANGE",
15265              "data": {"status": "pending", "id": "snapdelete0"}}
15266          <- {"event": "JOB_STATUS_CHANGE",
15267              "data": {"status": "concluded", "id": "snapdelete0"}}
15268          -> {"execute": "query-jobs"}
15269          <- {"return": [{"current-progress": 1,
15270                          "status": "concluded",
15271                          "total-progress": 1,
15272                          "type": "snapshot-delete",
15273                          "id": "snapdelete0"}]}
15274
15275   Since
15276       6.0
15277

TRANSACTIONS

15279   Abort (Object)
15280       This action can be used to test transaction failure.
15281
15282   Since
15283       1.6
15284
15285   ActionCompletionMode (Enum)
15286       An enumeration of Transactional completion modes.
15287
15288   Values
15289       individual
15290              Do  not  attempt to cancel any other Actions if any Actions fail
15291              after the Transaction request succeeds.  All  Actions  that  can
15292              complete  successfully  will  do  so  without waiting on others.
15293              This is the default.
15294
15295       grouped
15296              If any Action fails after the Transaction succeeds,  cancel  all
15297              Actions.  Actions do not complete until all Actions are ready to
15298              complete. May be rejected by Actions that do  not  support  this
15299              completion mode.
15300
15301   Since
15302       2.5
15303
15304   TransactionActionKind (Enum)
15305   Values
15306       abort  Since 1.6
15307
15308       block-dirty-bitmap-add
15309              Since 2.5
15310
15311       block-dirty-bitmap-remove
15312              Since 4.2
15313
15314       block-dirty-bitmap-clear
15315              Since 2.5
15316
15317       block-dirty-bitmap-enable
15318              Since 4.0
15319
15320       block-dirty-bitmap-disable
15321              Since 4.0
15322
15323       block-dirty-bitmap-merge
15324              Since 4.0
15325
15326       blockdev-backup
15327              Since 2.3
15328
15329       blockdev-snapshot
15330              Since 2.5
15331
15332       blockdev-snapshot-internal-sync
15333              Since 1.7
15334
15335       blockdev-snapshot-sync
15336              since 1.1
15337
15338       drive-backup
15339              Since 1.6
15340
15341   Features
15342       deprecated
15343              Member  drive-backup  is deprecated.  Use member blockdev-backup
15344              instead.
15345
15346   Since
15347       1.1
15348
15349   AbortWrapper (Object)
15350   Members
15351       data: Abort
15352              Not documented
15353
15354   Since
15355       1.6
15356
15357   BlockDirtyBitmapAddWrapper (Object)
15358   Members
15359       data: BlockDirtyBitmapAdd
15360              Not documented
15361
15362   Since
15363       2.5
15364
15365   BlockDirtyBitmapWrapper (Object)
15366   Members
15367       data: BlockDirtyBitmap
15368              Not documented
15369
15370   Since
15371       2.5
15372
15373   BlockDirtyBitmapMergeWrapper (Object)
15374   Members
15375       data: BlockDirtyBitmapMerge
15376              Not documented
15377
15378   Since
15379       4.0
15380
15381   BlockdevBackupWrapper (Object)
15382   Members
15383       data: BlockdevBackup
15384              Not documented
15385
15386   Since
15387       2.3
15388
15389   BlockdevSnapshotWrapper (Object)
15390   Members
15391       data: BlockdevSnapshot
15392              Not documented
15393
15394   Since
15395       2.5
15396
15397   BlockdevSnapshotInternalWrapper (Object)
15398   Members
15399       data: BlockdevSnapshotInternal
15400              Not documented
15401
15402   Since
15403       1.7
15404
15405   BlockdevSnapshotSyncWrapper (Object)
15406   Members
15407       data: BlockdevSnapshotSync
15408              Not documented
15409
15410   Since
15411       1.1
15412
15413   DriveBackupWrapper (Object)
15414   Members
15415       data: DriveBackup
15416              Not documented
15417
15418   Since
15419       1.6
15420
15421   TransactionAction (Object)
15422       A discriminated record of operations that can be performed with  trans‐
15423       action.
15424
15425   Members
15426       type: TransactionActionKind
15427              Not documented
15428
15429       The members of AbortWrapper when type is "abort"
15430
15431       The    members    of    BlockDirtyBitmapAddWrapper    when    type   is
15432       "block-dirty-bitmap-add"
15433
15434       The members of BlockDirtyBitmapWrapper when type  is  "block-dirty-bit‐
15435       map-remove"
15436
15437       The  members  of BlockDirtyBitmapWrapper when type is "block-dirty-bit‐
15438       map-clear"
15439
15440       The members of BlockDirtyBitmapWrapper when type  is  "block-dirty-bit‐
15441       map-enable"
15442
15443       The  members  of BlockDirtyBitmapWrapper when type is "block-dirty-bit‐
15444       map-disable"
15445
15446       The   members   of   BlockDirtyBitmapMergeWrapper    when    type    is
15447       "block-dirty-bitmap-merge"
15448
15449       The members of BlockdevBackupWrapper when type is "blockdev-backup"
15450
15451       The members of BlockdevSnapshotWrapper when type is "blockdev-snapshot"
15452
15453       The  members  of  BlockdevSnapshotInternalWrapper  when type is "block‐
15454       dev-snapshot-internal-sync"
15455
15456       The members of BlockdevSnapshotSyncWrapper when type is "blockdev-snap‐
15457       shot-sync"
15458
15459       The members of DriveBackupWrapper when type is "drive-backup"
15460
15461   Since
15462       1.1
15463
15464   TransactionProperties (Object)
15465       Optional arguments to modify the behavior of a Transaction.
15466
15467   Members
15468       completion-mode: ActionCompletionMode (optional)
15469              Controls  how  jobs launched asynchronously by Actions will com‐
15470              plete or fail as a group.  See ActionCompletionMode for details.
15471
15472   Since
15473       2.5
15474
15475   transaction (Command)
15476       Executes a number of transactionable QMP commands  atomically.  If  any
15477       operation  fails,  then the entire set of actions will be abandoned and
15478       the appropriate error returned.
15479
15480       For external snapshots, the dictionary contains the device, the file to
15481       use  for  the new snapshot, and the format.  The default format, if not
15482       specified, is qcow2.
15483
15484       Each new snapshot defaults to being created by QEMU  (wiping  any  con‐
15485       tents  if the file already exists), but it is also possible to reuse an
15486       externally-created file.  In the latter case, you  should  ensure  that
15487       the  new image file has the same contents as the current one; QEMU can‐
15488       not perform any meaningful check.  Typically this is achieved by  using
15489       the current image file as the backing file for the new image.
15490
15491       On failure, the original disks pre-snapshot attempt will be used.
15492
15493       For  internal  snapshots,  the  dictionary  contains the device and the
15494       snapshot's name.  If an internal snapshot matching name already exists,
15495       the  request will be rejected.  Only some image formats support it, for
15496       example, qcow2, and rbd,
15497
15498       On failure, qemu will try delete the newly created internal snapshot in
15499       the  transaction.   When  an I/O error occurs during deletion, the user
15500       needs to fix it later with qemu-img or other command.
15501
15502   Arguments
15503       actions: array of TransactionAction
15504              List of TransactionAction; information needed for the respective
15505              operations.
15506
15507       properties: TransactionProperties (optional)
15508              structure  of additional options to control the execution of the
15509              transaction. See TransactionProperties for additional detail.
15510
15511   Returns
15512       nothing on success
15513
15514       Errors depend on the operations of the transaction
15515
15516   Note
15517       The transaction aborts on the first failure.  Therefore, there will  be
15518       information  on  only  one failed operation returned in an error condi‐
15519       tion, and subsequent actions will not have been attempted.
15520
15521   Since
15522       1.1
15523
15524   Example
15525          -> { "execute": "transaction",
15526               "arguments": { "actions": [
15527                   { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
15528                                               "snapshot-file": "/some/place/my-image",
15529                                               "format": "qcow2" } },
15530                   { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
15531                                               "snapshot-file": "/some/place/my-image2",
15532                                               "snapshot-node-name": "node3432",
15533                                               "mode": "existing",
15534                                               "format": "qcow2" } },
15535                   { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
15536                                               "snapshot-file": "/some/place/my-image2",
15537                                               "mode": "existing",
15538                                               "format": "qcow2" } },
15539                   { "type": "blockdev-snapshot-internal-sync", "data" : {
15540                                               "device": "ide-hd2",
15541                                               "name": "snapshot0" } } ] } }
15542          <- { "return": {} }
15543

TRACING

15545   TraceEventState (Enum)
15546       State of a tracing event.
15547
15548   Values
15549       unavailable
15550              The event is statically disabled.
15551
15552       disabled
15553              The event is dynamically disabled.
15554
15555       enabled
15556              The event is dynamically enabled.
15557
15558   Since
15559       2.2
15560
15561   TraceEventInfo (Object)
15562       Information of a tracing event.
15563
15564   Members
15565       name: string
15566              Event name.
15567
15568       state: TraceEventState
15569              Tracing state.
15570
15571       vcpu: boolean
15572              Whether this is a per-vCPU event (since 2.7).
15573       An  event  is  per-vCPU  if  it  has  the  "vcpu"   property   in   the
15574       "trace-events" files.
15575
15576   Since
15577       2.2
15578
15579   trace-event-get-state (Command)
15580       Query the state of events.
15581
15582   Arguments
15583       name: string
15584              Event name pattern (case-sensitive glob).
15585
15586       vcpu: int (optional)
15587              The vCPU to query (any by default; since 2.7).
15588
15589   Returns
15590       a list of TraceEventInfo for the matching events
15591
15592       An event is returned if:
15593
15594       • its name matches the name pattern, and
15595
15596       • if vcpu is given, the event has the "vcpu" property.
15597
15598       Therefore,  if  vcpu  is  given, the operation will only match per-vCPU
15599       events, returning their state on the specified vCPU. Special  case:  if
15600       name  is  an exact match, vcpu is given and the event does not have the
15601       "vcpu" property, an error is returned.
15602
15603   Since
15604       2.2
15605
15606   Example
15607          -> { "execute": "trace-event-get-state",
15608               "arguments": { "name": "qemu_memalign" } }
15609          <- { "return": [ { "name": "qemu_memalign", "state": "disabled" } ] }
15610
15611   trace-event-set-state (Command)
15612       Set the dynamic tracing state of events.
15613
15614   Arguments
15615       name: string
15616              Event name pattern (case-sensitive glob).
15617
15618       enable: boolean
15619              Whether to enable tracing.
15620
15621       ignore-unavailable: boolean (optional)
15622              Do not match unavailable events with name.
15623
15624       vcpu: int (optional)
15625              The vCPU to act upon (all by default; since 2.7).
15626       An event's state is modified if: - its name matches the  name  pattern,
15627       and - if vcpu is given, the event has the "vcpu" property.
15628
15629       Therefore,  if  vcpu  is  given, the operation will only match per-vCPU
15630       events, setting their state on the specified  vCPU.  Special  case:  if
15631       name  is  an exact match, vcpu is given and the event does not have the
15632       "vcpu" property, an error is returned.
15633
15634   Since
15635       2.2
15636
15637   Example
15638          -> { "execute": "trace-event-set-state",
15639               "arguments": { "name": "qemu_memalign", "enable": true } }
15640          <- { "return": {} }
15641

COMPATIBILITY POLICY

15643   CompatPolicyInput (Enum)
15644       Policy for handling "funny" input.
15645
15646   Values
15647       accept Accept silently
15648
15649       reject Reject with an error
15650
15651       crash  abort() the process
15652
15653   Since
15654       6.0
15655
15656   CompatPolicyOutput (Enum)
15657       Policy for handling "funny" output.
15658
15659   Values
15660       accept Pass on unchanged
15661
15662       hide   Filter out
15663
15664   Since
15665       6.0
15666
15667   CompatPolicy (Object)
15668       Policy for handling deprecated management interfaces.
15669
15670       This is intended for testing users of the management interfaces.
15671
15672       Limitation: covers only syntactic aspects of  QMP,  i.e.  stuff  tagged
15673       with  feature 'deprecated'.  We may want to extend it to cover semantic
15674       aspects, CLI, and experimental features.
15675
15676       Limitation: deprecated-output policy hide is not implemented  for  enu‐
15677       meration values.  They behave the same as with policy accept.
15678
15679   Members
15680       deprecated-input: CompatPolicyInput (optional)
15681              how to handle deprecated input (default 'accept')
15682
15683       deprecated-output: CompatPolicyOutput (optional)
15684              how to handle deprecated output (default 'accept')
15685
15686       unstable-input: CompatPolicyInput (optional)
15687              how to handle unstable input (default 'accept') (since 6.2)
15688
15689       unstable-output: CompatPolicyOutput (optional)
15690              how to handle unstable output (default 'accept') (since 6.2)
15691
15692   Since
15693       6.0
15694

QMP MONITOR CONTROL

15696   qmp_capabilities (Command)
15697       Enable QMP capabilities.
15698
15699       Arguments:
15700
15701   Arguments
15702       enable: array of QMPCapability (optional)
15703              An  optional list of QMPCapability values to enable.  The client
15704              must not enable any capability that is not mentioned in the  QMP
15705              greeting message.  If the field is not provided, it means no QMP
15706              capabilities will be enabled.  (since 2.12)
15707
15708   Example
15709          -> { "execute": "qmp_capabilities",
15710               "arguments": { "enable": [ "oob" ] } }
15711          <- { "return": {} }
15712
15713   Notes
15714       This command is valid exactly when first connecting: it must be  issued
15715       before any other command will be accepted, and will fail once the moni‐
15716       tor is accepting other commands. (see qemu docs/interop/qmp-spec.txt)
15717
15718       The QMP client needs to explicitly enable QMP  capabilities,  otherwise
15719       all the QMP capabilities will be turned off by default.
15720
15721   Since
15722       0.13
15723
15724   QMPCapability (Enum)
15725       Enumeration of capabilities to be advertised during initial client con‐
15726       nection, used for agreeing on particular QMP extension behaviors.
15727
15728   Values
15729       oob    QMP ability to support out-of-band requests.  (Please  refer  to
15730              qmp-spec.txt for more information on OOB)
15731
15732   Since
15733       2.12
15734
15735   VersionTriple (Object)
15736       A three-part version number.
15737
15738   Members
15739       major: int
15740              The major version number.
15741
15742       minor: int
15743              The minor version number.
15744
15745       micro: int
15746              The micro version number.
15747
15748   Since
15749       2.4
15750
15751   VersionInfo (Object)
15752       A description of QEMU's version.
15753
15754   Members
15755       qemu: VersionTriple
15756              The  version of QEMU.  By current convention, a micro version of
15757              50 signifies a development branch.  A micro version greater than
15758              or  equal to 90 signifies a release candidate for the next minor
15759              version.  A micro version of less than 50 signifies a stable re‐
15760              lease.
15761
15762       package: string
15763              QEMU  will always set this field to an empty string.  Downstream
15764              versions of QEMU should set this to a non-empty string.  The ex‐
15765              act  format  depends  on the downstream however it highly recom‐
15766              mended that a unique name is used.
15767
15768   Since
15769       0.14
15770
15771   query-version (Command)
15772       Returns the current version of QEMU.
15773
15774   Returns
15775       A VersionInfo object describing the current version of QEMU.
15776
15777   Since
15778       0.14
15779
15780   Example
15781          -> { "execute": "query-version" }
15782          <- {
15783                "return":{
15784                   "qemu":{
15785                      "major":0,
15786                      "minor":11,
15787                      "micro":5
15788                   },
15789                   "package":""
15790                }
15791             }
15792
15793   CommandInfo (Object)
15794       Information about a QMP command
15795
15796   Members
15797       name: string
15798              The command name
15799
15800   Since
15801       0.14
15802
15803   query-commands (Command)
15804       Return a list of supported QMP commands by this server
15805
15806   Returns
15807       A list of CommandInfo for all supported commands
15808
15809   Since
15810       0.14
15811
15812   Example
15813          -> { "execute": "query-commands" }
15814          <- {
15815               "return":[
15816                  {
15817                     "name":"query-balloon"
15818                  },
15819                  {
15820                     "name":"system_powerdown"
15821                  }
15822               ]
15823             }
15824
15825   Note
15826       This example has been shortened as the real response is too long.
15827
15828   quit (Command)
15829       This command will cause the QEMU process to exit gracefully.  While ev‐
15830       ery  attempt  is made to send the QMP response before terminating, this
15831       is not guaranteed.  When using this interface, a  premature  EOF  would
15832       not be unexpected.
15833
15834   Since
15835       0.14
15836
15837   Example
15838          -> { "execute": "quit" }
15839          <- { "return": {} }
15840
15841   MonitorMode (Enum)
15842       An enumeration of monitor modes.
15843
15844   Values
15845       readline
15846              HMP monitor (human-oriented command line interface)
15847
15848       control
15849              QMP monitor (JSON-based machine interface)
15850
15851   Since
15852       5.0
15853
15854   MonitorOptions (Object)
15855       Options to be used for adding a new monitor.
15856
15857   Members
15858       id: string (optional)
15859              Name of the monitor
15860
15861       mode: MonitorMode (optional)
15862              Selects the monitor mode (default: readline in the system emula‐
15863              tor, control in qemu-storage-daemon)
15864
15865       pretty: boolean (optional)
15866              Enables pretty printing (QMP only)
15867
15868       chardev: string
15869              Name of a character device to expose the monitor on
15870
15871   Since
15872       5.0
15873

QMP INTROSPECTION

15875   query-qmp-schema (Command)
15876       Command query-qmp-schema exposes the  QMP  wire  ABI  as  an  array  of
15877       SchemaInfo.   This lets QMP clients figure out what commands and events
15878       are available in this QEMU, and their parameters and results.
15879
15880       However, the SchemaInfo can't reflect all the  rules  and  restrictions
15881       that  apply  to QMP.  It's interface introspection (figuring out what's
15882       there), not interface specification.  The specification is in the  QAPI
15883       schema.
15884
15885       Furthermore, while we strive to keep the QMP wire format backwards-com‐
15886       patible across qemu versions, the introspection output is  not  guaran‐
15887       teed  to have the same stability.  For example, one version of qemu may
15888       list an object member as an optional non-variant, while  another  lists
15889       the  same  member  only through the object's variants; or the type of a
15890       member may change from a generic string into a specific  enum  or  from
15891       one  specific  type  into  an alternate that includes the original type
15892       alongside something else.
15893
15894   Returns
15895       array of SchemaInfo, where each element describes an entity in the ABI:
15896       command, event, type, ...
15897
15898       The  order of the various SchemaInfo is unspecified; however, all names
15899       are guaranteed to be unique (no name will be duplicated with  different
15900       meta-types).
15901
15902   Note
15903       the  QAPI  schema  is  also used to help define internal interfaces, by
15904       defining QAPI types.  These are not part  of  the  QMP  wire  ABI,  and
15905       therefore not returned by this command.
15906
15907   Since
15908       2.5
15909
15910   SchemaMetaType (Enum)
15911       This is a SchemaInfo's meta type, i.e. the kind of entity it describes.
15912
15913   Values
15914       builtin
15915              a predefined type such as 'int' or 'bool'.
15916
15917       enum   an enumeration type
15918
15919       array  an array type
15920
15921       object an object type (struct or union)
15922
15923       alternate
15924              an alternate type
15925
15926       command
15927              a QMP command
15928
15929       event  a QMP event
15930
15931   Since
15932       2.5
15933
15934   SchemaInfo (Object)
15935   Members
15936       name: string
15937              the  entity's  name, inherited from base.  The SchemaInfo is al‐
15938              ways referenced by this name.  Commands and events have the name
15939              defined  in  the  QAPI  schema.  Unlike command and event names,
15940              type names are not part of the  wire  ABI.   Consequently,  type
15941              names  are  meaningless  strings  here,  although they are still
15942              guaranteed unique regardless of meta-type.
15943
15944       meta-type: SchemaMetaType
15945              the entity's meta type, inherited from base.
15946
15947       features: array of string (optional)
15948              names of features associated with the entity, in  no  particular
15949              order.   (since  4.1 for object types, 4.2 for commands, 5.0 for
15950              the rest)
15951
15952       The members of SchemaInfoBuiltin when meta-type is "builtin"
15953
15954       The members of SchemaInfoEnum when meta-type is "enum"
15955
15956       The members of SchemaInfoArray when meta-type is "array"
15957
15958       The members of SchemaInfoObject when meta-type is "object"
15959
15960       The members of SchemaInfoAlternate when meta-type is "alternate"
15961
15962       The members of SchemaInfoCommand when meta-type is "command"
15963
15964       The members of SchemaInfoEvent when meta-type is "event"
15965       Additional members depend on the value of meta-type.
15966
15967   Since
15968       2.5
15969
15970   SchemaInfoBuiltin (Object)
15971       Additional SchemaInfo members for meta-type 'builtin'.
15972
15973   Members
15974       json-type: JSONType
15975              the JSON type used for this type on the wire.
15976
15977   Since
15978       2.5
15979
15980   JSONType (Enum)
15981       The four primitive and two structured types according to RFC 8259  sec‐
15982       tion  1,  plus  'int'  (split  off 'number'), plus the obvious top type
15983       'value'.
15984
15985   Values
15986       string Not documented
15987
15988       number Not documented
15989
15990       int    Not documented
15991
15992       boolean
15993              Not documented
15994
15995       null   Not documented
15996
15997       object Not documented
15998
15999       array  Not documented
16000
16001       value  Not documented
16002
16003   Since
16004       2.5
16005
16006   SchemaInfoEnum (Object)
16007       Additional SchemaInfo members for meta-type 'enum'.
16008
16009   Members
16010       members: array of SchemaInfoEnumMember
16011              the enum type's members, in no particular order (since 6.2).
16012
16013       values: array of string
16014              the enumeration type's member names,  in  no  particular  order.
16015              Redundant with members.  Just for backward compatibility.
16016
16017   Features
16018       deprecated
16019              Member values is deprecated.  Use members instead.
16020       Values of this type are JSON string on the wire.
16021
16022   Since
16023       2.5
16024
16025   SchemaInfoEnumMember (Object)
16026       An object member.
16027
16028   Members
16029       name: string
16030              the member's name, as defined in the QAPI schema.
16031
16032       features: array of string (optional)
16033              names  of  features associated with the member, in no particular
16034              order.
16035
16036   Since
16037       6.2
16038
16039   SchemaInfoArray (Object)
16040       Additional SchemaInfo members for meta-type 'array'.
16041
16042   Members
16043       element-type: string
16044              the array type's element type.
16045       Values of this type are JSON array on the wire.
16046
16047   Since
16048       2.5
16049
16050   SchemaInfoObject (Object)
16051       Additional SchemaInfo members for meta-type 'object'.
16052
16053   Members
16054       members: array of SchemaInfoObjectMember
16055              the object type's (non-variant) members, in no particular order.
16056
16057       tag: string (optional)
16058              the name of the member serving as type tag.  An element of  mem‐
16059              bers with this name must exist.
16060
16061       variants: array of SchemaInfoObjectVariant (optional)
16062              variant members, i.e. additional members that depend on the type
16063              tag's value.  Present exactly when tag is present.  The variants
16064              are  in  no particular order, and may even differ from the order
16065              of the values of the enum type of the tag.
16066       Values of this type are JSON object on the wire.
16067
16068   Since
16069       2.5
16070
16071   SchemaInfoObjectMember (Object)
16072       An object member.
16073
16074   Members
16075       name: string
16076              the member's name, as defined in the QAPI schema.
16077
16078       type: string
16079              the name of the member's type.
16080
16081       default: value (optional)
16082              default when used as command parameter.  If absent, the  parame‐
16083              ter  is mandatory.  If present, the value must be null.  The pa‐
16084              rameter is optional, and behavior when it's missing is not spec‐
16085              ified  here.  Future extension: if present and non-null, the pa‐
16086              rameter is optional, and defaults to this value.
16087
16088       features: array of string (optional)
16089              names of features associated with the member, in  no  particular
16090              order.  (since 5.0)
16091
16092   Since
16093       2.5
16094
16095   SchemaInfoObjectVariant (Object)
16096       The variant members for a value of the type tag.
16097
16098   Members
16099       case: string
16100              a value of the type tag.
16101
16102       type: string
16103              the  name  of  the object type that provides the variant members
16104              when the type tag has value case.
16105
16106   Since
16107       2.5
16108
16109   SchemaInfoAlternate (Object)
16110       Additional SchemaInfo members for meta-type 'alternate'.
16111
16112   Members
16113       members: array of SchemaInfoAlternateMember
16114              the alternate type's members, in no particular order.  The  mem‐
16115              bers'     wire    encoding    is    distinct,    see    docs/de‐
16116              vel/qapi-code-gen.txt section Alternate types.
16117       On the wire, this can be any of the members.
16118
16119   Since
16120       2.5
16121
16122   SchemaInfoAlternateMember (Object)
16123       An alternate member.
16124
16125   Members
16126       type: string
16127              the name of the member's type.
16128
16129   Since
16130       2.5
16131
16132   SchemaInfoCommand (Object)
16133       Additional SchemaInfo members for meta-type 'command'.
16134
16135   Members
16136       arg-type: string
16137              the name of the object type that provides the command's  parame‐
16138              ters.
16139
16140       ret-type: string
16141              the name of the command's result type.
16142
16143       allow-oob: boolean (optional)
16144              whether  the  command  allows out-of-band execution, defaults to
16145              false (Since: 2.12)
16146
16147   TODO
16148       success-response (currently irrelevant, because it's QGA, not QMP)
16149
16150   Since
16151       2.5
16152
16153   SchemaInfoEvent (Object)
16154       Additional SchemaInfo members for meta-type 'event'.
16155
16156   Members
16157       arg-type: string
16158              the name of the object type that provides  the  event's  parame‐
16159              ters.
16160
16161   Since
16162       2.5
16163

QEMU OBJECT MODEL (QOM)

16165   ObjectPropertyInfo (Object)
16166   Members
16167       name: string
16168              the name of the property
16169
16170       type: string
16171              the  type  of  the property.  This will typically come in one of
16172              four forms:
16173
16174              1. A primitive type such as 'u8', 'u16', 'bool', 'str', or 'dou‐
16175                 ble'.  These types are mapped to the appropriate JSON type.
16176
16177              2. A  child type in the form 'child<subtype>' where subtype is a
16178                 qdev device type name.  Child properties create the  composi‐
16179                 tion tree.
16180
16181              3. A  link  type  in the form 'link<subtype>' where subtype is a
16182                 qdev device type name.  Link properties form the device model
16183                 graph.
16184
16185       description: string (optional)
16186              if specified, the description of the property.
16187
16188       default-value: value (optional)
16189              the default value, if any (since 5.0)
16190
16191   Since
16192       1.2
16193
16194   qom-list (Command)
16195       This  command  will list any properties of a object given a path in the
16196       object model.
16197
16198   Arguments
16199       path: string
16200              the path within the object model.  See qom-get for a description
16201              of this parameter.
16202
16203   Returns
16204       a  list  of  ObjectPropertyInfo that describe the properties of the ob‐
16205       ject.
16206
16207   Since
16208       1.2
16209
16210   Example
16211          -> { "execute": "qom-list",
16212               "arguments": { "path": "/chardevs" } }
16213          <- { "return": [ { "name": "type", "type": "string" },
16214                           { "name": "parallel0", "type": "child<chardev-vc>" },
16215                           { "name": "serial0", "type": "child<chardev-vc>" },
16216                           { "name": "mon0", "type": "child<chardev-stdio>" } ] }
16217
16218   qom-get (Command)
16219       This command will get a property from a object model  path  and  return
16220       the value.
16221
16222   Arguments
16223       path: string
16224              The  path  within the object model.  There are two forms of sup‐
16225              ported paths--absolute and partial paths.
16226
16227              Absolute paths are derived from the root object and  can  follow
16228              child<>  or  link<>  properties.   Since  they can follow link<>
16229              properties, they can be arbitrarily long.  Absolute  paths  look
16230              like absolute filenames and are prefixed  with a leading slash.
16231
16232              Partial  paths  look like relative filenames.  They do not begin
16233              with a prefix.  The matching rules for partial paths are  subtle
16234              but  designed to make specifying objects easy.  At each level of
16235              the composition tree, the partial path is matched as an absolute
16236              path.   The  first  match is not returned.  At least two matches
16237              are searched for.  A successful result is only returned if  only
16238              one  match is found.  If more than one match is found, a flag is
16239              return to indicate that the match was ambiguous.
16240
16241       property: string
16242              The property name to read
16243
16244   Returns
16245       The property value.  The type depends on the property type. child<> and
16246       link<> properties are returned as #str pathnames.  All integer property
16247       types (u8, u16, etc) are returned as #int.
16248
16249   Since
16250       1.2
16251
16252   Example
16253          1. Use absolute path
16254
16255          -> { "execute": "qom-get",
16256               "arguments": { "path": "/machine/unattached/device[0]",
16257                              "property": "hotplugged" } }
16258          <- { "return": false }
16259
16260          2. Use partial path
16261
16262          -> { "execute": "qom-get",
16263               "arguments": { "path": "unattached/sysbus",
16264                              "property": "type" } }
16265          <- { "return": "System" }
16266
16267   qom-set (Command)
16268       This command will set a property from a object model path.
16269
16270   Arguments
16271       path: string
16272              see qom-get for a description of this parameter
16273
16274       property: string
16275              the property name to set
16276
16277       value: value
16278              a value who's type is appropriate for the  property  type.   See
16279              qom-get for a description of type mapping.
16280
16281   Since
16282       1.2
16283
16284   Example
16285          -> { "execute": "qom-set",
16286               "arguments": { "path": "/machine",
16287                              "property": "graphics",
16288                              "value": false } }
16289          <- { "return": {} }
16290
16291   ObjectTypeInfo (Object)
16292       This structure describes a search result from qom-list-types
16293
16294   Members
16295       name: string
16296              the type name found in the search
16297
16298       abstract: boolean (optional)
16299              the  type is abstract and can't be directly instantiated.  Omit‐
16300              ted if false. (since 2.10)
16301
16302       parent: string (optional)
16303              Name of parent type, if any (since 2.10)
16304
16305   Since
16306       1.1
16307
16308   qom-list-types (Command)
16309       This command will return a list of types given search parameters
16310
16311   Arguments
16312       implements: string (optional)
16313              if specified, only return types that implement this type name
16314
16315       abstract: boolean (optional)
16316              if true, include abstract types in the results
16317
16318   Returns
16319       a list of ObjectTypeInfo or an empty list if no results are found
16320
16321   Since
16322       1.1
16323
16324   qom-list-properties (Command)
16325       List properties associated with a QOM object.
16326
16327   Arguments
16328       typename: string
16329              the type name of an object
16330
16331   Note
16332       objects can create properties at runtime, for example to describe links
16333       between  different devices and/or objects. These properties are not in‐
16334       cluded in the output of this command.
16335
16336   Returns
16337       a list of ObjectPropertyInfo describing object properties
16338
16339   Since
16340       2.12
16341
16342   CanHostSocketcanProperties (Object)
16343       Properties for can-host-socketcan objects.
16344
16345   Members
16346       if: string
16347              interface name of the host system CAN bus to connect to
16348
16349       canbus: string
16350              object ID of the can-bus object to connect to the host interface
16351
16352   Since
16353       2.12
16354
16355   ColoCompareProperties (Object)
16356       Properties for colo-compare objects.
16357
16358   Members
16359       primary_in: string
16360              name of the character device backend to use for the primary  in‐
16361              put (incoming packets are redirected to outdev)
16362
16363       secondary_in: string
16364              name  of the character device backend to use for secondary input
16365              (incoming packets are only compared to the input  on  primary_in
16366              and then dropped)
16367
16368       outdev: string
16369              name of the character device backend to use for output
16370
16371       iothread: string
16372              name of the iothread to run in
16373
16374       notify_dev: string (optional)
16375              name  of  the character device backend to be used to communicate
16376              with the remote colo-frame (only for Xen COLO)
16377
16378       compare_timeout: int (optional)
16379              the maximum time to hold a packet from primary_in for comparison
16380              with  an  incoming  packet  on secondary_in in milliseconds (de‐
16381              fault: 3000)
16382
16383       expired_scan_cycle: int (optional)
16384              the interval at which colo-compare checks whether  packets  from
16385              primary have timed out, in milliseconds (default: 3000)
16386
16387       max_queue_size: int (optional)
16388              the maximum number of packets to keep in the queue for comparing
16389              with incoming packets from secondary_in.  If the queue  is  full
16390              and  additional packets are received, the additional packets are
16391              dropped. (default: 1024)
16392
16393       vnet_hdr_support: boolean (optional)
16394              if true, vnet header support is enabled (default: false)
16395
16396   Since
16397       2.8
16398
16399   CryptodevBackendProperties (Object)
16400       Properties for cryptodev-backend and cryptodev-backend-builtin objects.
16401
16402   Members
16403       queues: int (optional)
16404              the number of queues for  the  cryptodev  backend.  Ignored  for
16405              cryptodev-backend  and  must be 1 for cryptodev-backend-builtin.
16406              (default: 1)
16407
16408   Since
16409       2.8
16410
16411   CryptodevVhostUserProperties (Object)
16412       Properties for cryptodev-vhost-user objects.
16413
16414   Members
16415       chardev: string
16416              the name of a Unix domain socket character device that  connects
16417              to the vhost-user server
16418
16419       The members of CryptodevBackendProperties
16420
16421   Since
16422       2.12
16423
16424   DBusVMStateProperties (Object)
16425       Properties for dbus-vmstate objects.
16426
16427   Members
16428       addr: string
16429              the name of the DBus bus to connect to
16430
16431       id-list: string (optional)
16432              a  comma separated list of DBus IDs of helpers whose data should
16433              be included in the VM state on migration
16434
16435   Since
16436       5.0
16437
16438   NetfilterInsert (Enum)
16439       Indicates where to insert a netfilter relative to a given other filter.
16440
16441   Values
16442       before insert before the specified filter
16443
16444       behind insert behind the specified filter
16445
16446   Since
16447       5.0
16448
16449   NetfilterProperties (Object)
16450       Properties for objects of classes derived from netfilter.
16451
16452   Members
16453       netdev: string
16454              id of the network device backend to filter
16455
16456       queue: NetFilterDirection (optional)
16457              indicates which queue(s) to filter (default: all)
16458
16459       status: string (optional)
16460              indicates whether the  filter  is  enabled  ("on")  or  disabled
16461              ("off") (default: "on")
16462
16463       position: string (optional)
16464              specifies  where  the  filter  should  be inserted in the filter
16465              list.  "head" means the filter is inserted at the  head  of  the
16466              filter list, before any existing filters.  "tail" means the fil‐
16467              ter is inserted at the tail of the filter list, behind  any  ex‐
16468              isting  filters  (default).   "id=<id>"  means the filter is in‐
16469              serted before or behind the filter specified by <id>,  depending
16470              on the insert property.  (default: "tail")
16471
16472       insert: NetfilterInsert (optional)
16473              where to insert the filter relative to the filter given in posi‐
16474              tion.  Ignored if position is "head" or  "tail".  (default:  be‐
16475              hind)
16476
16477   Since
16478       2.5
16479
16480   FilterBufferProperties (Object)
16481       Properties for filter-buffer objects.
16482
16483   Members
16484       interval: int
16485              a  non-zero  interval  in microseconds.  All packets arriving in
16486              the given interval are delayed until the end of the interval.
16487
16488       The members of NetfilterProperties
16489
16490   Since
16491       2.5
16492
16493   FilterDumpProperties (Object)
16494       Properties for filter-dump objects.
16495
16496   Members
16497       file: string
16498              the filename where the dumped packets should be stored
16499
16500       maxlen: int (optional)
16501              maximum number of bytes in a packet that  are  stored  (default:
16502              65536)
16503
16504       The members of NetfilterProperties
16505
16506   Since
16507       2.5
16508
16509   FilterMirrorProperties (Object)
16510       Properties for filter-mirror objects.
16511
16512   Members
16513       outdev: string
16514              the  name  of  a  character device backend to which all incoming
16515              packets are mirrored
16516
16517       vnet_hdr_support: boolean (optional)
16518              if true, vnet header support is enabled (default: false)
16519
16520       The members of NetfilterProperties
16521
16522   Since
16523       2.6
16524
16525   FilterRedirectorProperties (Object)
16526       Properties for filter-redirector objects.
16527
16528       At least one of indev or outdev must be present.  If both are  present,
16529       they must not refer to the same character device backend.
16530
16531   Members
16532       indev: string (optional)
16533              the  name  of  a character device backend from which packets are
16534              received and redirected to the filtered network device
16535
16536       outdev: string (optional)
16537              the name of a character device backend  to  which  all  incoming
16538              packets are redirected
16539
16540       vnet_hdr_support: boolean (optional)
16541              if true, vnet header support is enabled (default: false)
16542
16543       The members of NetfilterProperties
16544
16545   Since
16546       2.6
16547
16548   FilterRewriterProperties (Object)
16549       Properties for filter-rewriter objects.
16550
16551   Members
16552       vnet_hdr_support: boolean (optional)
16553              if true, vnet header support is enabled (default: false)
16554
16555       The members of NetfilterProperties
16556
16557   Since
16558       2.8
16559
16560   InputBarrierProperties (Object)
16561       Properties for input-barrier objects.
16562
16563   Members
16564       name: string
16565              the  screen  name  as  declared  in  the screens section of bar‐
16566              rier.conf
16567
16568       server: string (optional)
16569              hostname of the Barrier server (default: "localhost")
16570
16571       port: string (optional)
16572              TCP port of the Barrier server (default: "24800")
16573
16574       x-origin: string (optional)
16575              x coordinate of the leftmost pixel on the guest screen (default:
16576              "0")
16577
16578       y-origin: string (optional)
16579              y  coordinate of the topmost pixel on the guest screen (default:
16580              "0")
16581
16582       width: string (optional)
16583              the width of secondary screen in pixels (default: "1920")
16584
16585       height: string (optional)
16586              the height of secondary screen in pixels (default: "1080")
16587
16588   Since
16589       4.2
16590
16591   InputLinuxProperties (Object)
16592       Properties for input-linux objects.
16593
16594   Members
16595       evdev: string
16596              the path of the host evdev device to use
16597
16598       grab_all: boolean (optional)
16599              if true, grab is toggled for all devices (e.g. both keyboard and
16600              mouse) instead of just one device (default: false)
16601
16602       repeat: boolean (optional)
16603              enables auto-repeat events (default: false)
16604
16605       grab-toggle: GrabToggleKeys (optional)
16606              the  key  or  key combination that toggles device grab (default:
16607              ctrl-ctrl)
16608
16609   Since
16610       2.6
16611
16612   IothreadProperties (Object)
16613       Properties for iothread objects.
16614
16615   Members
16616       poll-max-ns: int (optional)
16617              the maximum number of nanoseconds to busy wait  for  events.   0
16618              means polling is disabled (default: 32768 on POSIX hosts, 0 oth‐
16619              erwise)
16620
16621       poll-grow: int (optional)
16622              the multiplier used to increase the polling time when the  algo‐
16623              rithm  detects  it  is  missing  events  due to not polling long
16624              enough. 0 selects a default behaviour (default: 0)
16625
16626       poll-shrink: int (optional)
16627              the divisor used to decrease the polling time when the algorithm
16628              detects  it  is  spending  too long polling without encountering
16629              events. 0 selects a default behaviour (default: 0)
16630
16631       aio-max-batch: int (optional)
16632              maximum number of requests in a batch  for  the  AIO  engine,  0
16633              means  that  the  engine  will use its default (default:0, since
16634              6.1)
16635
16636   Since
16637       2.0
16638
16639   MemoryBackendProperties (Object)
16640       Properties for objects of classes derived from memory-backend.
16641
16642   Members
16643       merge: boolean (optional)
16644              if true, mark the memory as mergeable (default  depends  on  the
16645              machine type)
16646
16647       dump: boolean (optional)
16648              if  true,  include  the memory in core dumps (default depends on
16649              the machine type)
16650
16651       host-nodes: array of int (optional)
16652              the list of NUMA host nodes to bind the memory to
16653
16654       policy: HostMemPolicy (optional)
16655              the NUMA policy (default: 'default')
16656
16657       prealloc: boolean (optional)
16658              if true, preallocate memory (default: false)
16659
16660       prealloc-threads: int (optional)
16661              number of CPU threads to use for prealloc (default: 1)
16662
16663       share: boolean (optional)
16664              if false, the memory is private to QEMU; if true, it  is  shared
16665              (default: false)
16666
16667       reserve: boolean (optional)
16668              if  true,  reserve swap space (or huge pages) if applicable (de‐
16669              fault: true) (since 6.1)
16670
16671       size: int
16672              size of the memory region in bytes
16673
16674       x-use-canonical-path-for-ramblock-id: boolean (optional)
16675              if true, the canoncial path is  used  for  ramblock-id.  Disable
16676              this  for  4.0  machine  types  or older to allow migration with
16677              newer QEMU versions.  (default: false generally,  but  true  for
16678              machine types <= 4.0)
16679
16680   Note
16681       prealloc=true  and  reserve=false  cannot be set at the same time. With
16682       reserve=true, the behavior depends on the operating system:  for  exam‐
16683       ple, Linux will not reserve swap space for shared file mappings -- "not
16684       applicable". In contrast, reserve=false will bail out if it  cannot  be
16685       configured accordingly.
16686
16687   Since
16688       2.1
16689
16690   MemoryBackendFileProperties (Object)
16691       Properties for memory-backend-file objects.
16692
16693   Members
16694       align: int (optional)
16695              the  base  address  alignment  when QEMU mmap(2)s mem-path. Some
16696              backend stores specified by mem-path require an  alignment  dif‐
16697              ferent  than  the  default one used by QEMU, e.g. the device DAX
16698              /dev/dax0.0 requires 2M alignment rather than 4K. In such cases,
16699              users can specify the required alignment via this option.  0 se‐
16700              lects a default alignment (currently the page  size).  (default:
16701              0)
16702
16703       discard-data: boolean (optional)
16704              if  true, the file contents can be destroyed when QEMU exits, to
16705              avoid unnecessarily flushing data to the backing file. Note that
16706              discard-data is only an optimization, and QEMU might not discard
16707              file contents if it aborts unexpectedly or is  terminated  using
16708              SIGKILL. (default: false)
16709
16710       mem-path: string
16711              the path to either a shared memory or huge page filesystem mount
16712
16713       pmem: boolean (optional) (If: CONFIG_LIBPMEM)
16714              specifies  whether  the backing file specified by mem-path is in
16715              host persistent memory that can be accessed using the  SNIA  NVM
16716              programming model (e.g. Intel NVDIMM).
16717
16718       readonly: boolean (optional)
16719              if  true,  the backing file is opened read-only; if false, it is
16720              opened read-write. (default: false)
16721
16722       The members of MemoryBackendProperties
16723
16724   Since
16725       2.1
16726
16727   MemoryBackendMemfdProperties (Object)
16728       Properties for memory-backend-memfd objects.
16729
16730       The share boolean option is true by default with memfd.
16731
16732   Members
16733       hugetlb: boolean (optional)
16734              if true, the  file  to  be  created  resides  in  the  hugetlbfs
16735              filesystem (default: false)
16736
16737       hugetlbsize: int (optional)
16738              the  hugetlb  page size on systems that support multiple hugetlb
16739              page sizes (it must be a power of 2 value supported by the  sys‐
16740              tem).  0  selects a default page size. This option is ignored if
16741              hugetlb is false. (default: 0)
16742
16743       seal: boolean (optional)
16744              if true, create a sealed-file, which will block further resizing
16745              of the memory (default: true)
16746
16747       The members of MemoryBackendProperties
16748
16749   Since
16750       2.12
16751
16752   MemoryBackendEpcProperties (Object)
16753       Properties for memory-backend-epc objects.
16754
16755       The share boolean option is true by default with epc
16756
16757       The merge boolean option is false by default with epc
16758
16759       The dump boolean option is false by default with epc
16760
16761   Members
16762       The members of MemoryBackendProperties
16763
16764   Since
16765       6.2
16766
16767   PrManagerHelperProperties (Object)
16768       Properties for pr-manager-helper objects.
16769
16770   Members
16771       path: string
16772              the  path to a Unix domain socket for connecting to the external
16773              helper
16774
16775   Since
16776       2.11
16777
16778   QtestProperties (Object)
16779       Properties for qtest objects.
16780
16781   Members
16782       chardev: string
16783              the chardev to be used to receive qtest commands on.
16784
16785       log: string (optional)
16786              the path to a log file
16787
16788   Since
16789       6.0
16790
16791   RemoteObjectProperties (Object)
16792       Properties for x-remote-object objects.
16793
16794   Members
16795       fd: string
16796              file descriptor name previously passed via 'getfd' command
16797
16798       devid: string
16799              the id of the device to be associated with the file descriptor
16800
16801   Since
16802       6.0
16803
16804   RngProperties (Object)
16805       Properties for objects of classes derived from rng.
16806
16807   Members
16808       opened: boolean (optional)
16809              if true, the device is opened immediately when applying this op‐
16810              tion  and  will  probably  fail when processing the next option.
16811              Don't use; only provided for compatibility. (default: false)
16812
16813   Features
16814       deprecated
16815              Member opened is deprecated.  Setting true doesn't  make  sense,
16816              and false is already the default.
16817
16818   Since
16819       1.3
16820
16821   RngEgdProperties (Object)
16822       Properties for rng-egd objects.
16823
16824   Members
16825       chardev: string
16826              the name of a character device backend that provides the connec‐
16827              tion to the RNG daemon
16828
16829       The members of RngProperties
16830
16831   Since
16832       1.3
16833
16834   RngRandomProperties (Object)
16835       Properties for rng-random objects.
16836
16837   Members
16838       filename: string (optional)
16839              the filename of the device on the host to  obtain  entropy  from
16840              (default: "/dev/urandom")
16841
16842       The members of RngProperties
16843
16844   Since
16845       1.3
16846
16847   SevGuestProperties (Object)
16848       Properties for sev-guest objects.
16849
16850   Members
16851       sev-device: string (optional)
16852              SEV device to use (default: "/dev/sev")
16853
16854       dh-cert-file: string (optional)
16855              guest owners DH certificate (encoded with base64)
16856
16857       session-file: string (optional)
16858              guest owners session parameters (encoded with base64)
16859
16860       policy: int (optional)
16861              SEV policy value (default: 0x1)
16862
16863       handle: int (optional)
16864              SEV firmware handle (default: 0)
16865
16866       cbitpos: int (optional)
16867              C-bit location in page table entry (default: 0)
16868
16869       reduced-phys-bits: int
16870              number  of  bits  in  physical addresses that become unavailable
16871              when SEV is enabled
16872
16873       kernel-hashes: boolean (optional)
16874              if true, add hashes of  kernel/initrd/cmdline  to  a  designated
16875              guest  firmware  page  for  measured boot with -kernel (default:
16876              false) (since 6.2)
16877
16878   Since
16879       2.12
16880
16881   ObjectType (Enum)
16882   Values
16883       authz-list
16884              Not documented
16885
16886       authz-listfile
16887              Not documented
16888
16889       authz-pam
16890              Not documented
16891
16892       authz-simple
16893              Not documented
16894
16895       can-bus
16896              Not documented
16897
16898       can-host-socketcan (If: CONFIG_LINUX)
16899              Not documented
16900
16901       colo-compare
16902              Not documented
16903
16904       cryptodev-backend
16905              Not documented
16906
16907       cryptodev-backend-builtin
16908              Not documented
16909
16910       cryptodev-vhost-user (If: CONFIG_VHOST_CRYPTO)
16911              Not documented
16912
16913       dbus-vmstate
16914              Not documented
16915
16916       filter-buffer
16917              Not documented
16918
16919       filter-dump
16920              Not documented
16921
16922       filter-mirror
16923              Not documented
16924
16925       filter-redirector
16926              Not documented
16927
16928       filter-replay
16929              Not documented
16930
16931       filter-rewriter
16932              Not documented
16933
16934       input-barrier
16935              Not documented
16936
16937       input-linux (If: CONFIG_LINUX)
16938              Not documented
16939
16940       iothread
16941              Not documented
16942
16943       memory-backend-epc (If: CONFIG_LINUX)
16944              Not documented
16945
16946       memory-backend-file
16947              Not documented
16948
16949       memory-backend-memfd (If: CONFIG_LINUX)
16950              Not documented
16951
16952       memory-backend-ram
16953              Not documented
16954
16955       pef-guest
16956              Not documented
16957
16958       pr-manager-helper (If: CONFIG_LINUX)
16959              Not documented
16960
16961       qtest  Not documented
16962
16963       rng-builtin
16964              Not documented
16965
16966       rng-egd
16967              Not documented
16968
16969       rng-random (If: CONFIG_POSIX)
16970              Not documented
16971
16972       secret Not documented
16973
16974       secret_keyring (If: CONFIG_SECRET_KEYRING)
16975              Not documented
16976
16977       sev-guest
16978              Not documented
16979
16980       s390-pv-guest
16981              Not documented
16982
16983       throttle-group
16984              Not documented
16985
16986       tls-creds-anon
16987              Not documented
16988
16989       tls-creds-psk
16990              Not documented
16991
16992       tls-creds-x509
16993              Not documented
16994
16995       tls-cipher-suites
16996              Not documented
16997
16998       x-remote-object
16999              Not documented
17000
17001   Features
17002       unstable
17003              Member x-remote-object is experimental.
17004
17005   Since
17006       6.0
17007
17008   ObjectOptions (Object)
17009       Describes the options of a user creatable QOM object.
17010
17011   Members
17012       qom-type: ObjectType
17013              the class name for the object to be created
17014
17015       id: string
17016              the name of the new object
17017
17018       The members of AuthZListProperties when qom-type is "authz-list"
17019
17020       The members of AuthZListFileProperties when  qom-type  is  "authz-list‐
17021       file"
17022
17023       The members of AuthZPAMProperties when qom-type is "authz-pam"
17024
17025       The members of AuthZSimpleProperties when qom-type is "authz-simple"
17026
17027       The    members   of   CanHostSocketcanProperties   when   qom-type   is
17028       "can-host-socketcan" (If: CONFIG_LINUX)
17029
17030       The members of ColoCompareProperties when qom-type is "colo-compare"
17031
17032       The members  of  CryptodevBackendProperties  when  qom-type  is  "cryp‐
17033       todev-backend"
17034
17035       The  members  of  CryptodevBackendProperties  when  qom-type  is "cryp‐
17036       todev-backend-builtin"
17037
17038       The members of CryptodevVhostUserProperties  when  qom-type  is  "cryp‐
17039       todev-vhost-user" (If: CONFIG_VHOST_CRYPTO)
17040
17041       The members of DBusVMStateProperties when qom-type is "dbus-vmstate"
17042
17043       The members of FilterBufferProperties when qom-type is "filter-buffer"
17044
17045       The members of FilterDumpProperties when qom-type is "filter-dump"
17046
17047       The members of FilterMirrorProperties when qom-type is "filter-mirror"
17048
17049       The  members  of  FilterRedirectorProperties  when  qom-type  is  "fil‐
17050       ter-redirector"
17051
17052       The members of NetfilterProperties when qom-type is "filter-replay"
17053
17054       The  members  of  FilterRewriterProperties  when  qom-type   is   "fil‐
17055       ter-rewriter"
17056
17057       The members of InputBarrierProperties when qom-type is "input-barrier"
17058
17059       The members of InputLinuxProperties when qom-type is "input-linux" (If:
17060       CONFIG_LINUX)
17061
17062       The members of IothreadProperties when qom-type is "iothread"
17063
17064       The  members  of  MemoryBackendEpcProperties  when  qom-type  is  "mem‐
17065       ory-backend-epc" (If: CONFIG_LINUX)
17066
17067       The  members  of  MemoryBackendFileProperties  when  qom-type  is "mem‐
17068       ory-backend-file"
17069
17070       The members of  MemoryBackendMemfdProperties  when  qom-type  is  "mem‐
17071       ory-backend-memfd" (If: CONFIG_LINUX)
17072
17073       The  members  of MemoryBackendProperties when qom-type is "memory-back‐
17074       end-ram"
17075
17076       The members of  PrManagerHelperProperties  when  qom-type  is  "pr-man‐
17077       ager-helper" (If: CONFIG_LINUX)
17078
17079       The members of QtestProperties when qom-type is "qtest"
17080
17081       The members of RngProperties when qom-type is "rng-builtin"
17082
17083       The members of RngEgdProperties when qom-type is "rng-egd"
17084
17085       The  members  of RngRandomProperties when qom-type is "rng-random" (If:
17086       CONFIG_POSIX)
17087
17088       The members of SecretProperties when qom-type is "secret"
17089
17090       The  members  of  SecretKeyringProperties   when   qom-type   is   "se‐
17091       cret_keyring" (If: CONFIG_SECRET_KEYRING)
17092
17093       The members of SevGuestProperties when qom-type is "sev-guest"
17094
17095       The   members  of  ThrottleGroupProperties  when  qom-type  is  "throt‐
17096       tle-group"
17097
17098       The members of TlsCredsAnonProperties when qom-type is "tls-creds-anon"
17099
17100       The members of TlsCredsPskProperties when qom-type is "tls-creds-psk"
17101
17102       The members of TlsCredsX509Properties when qom-type is "tls-creds-x509"
17103
17104       The members of TlsCredsProperties when qom-type is "tls-cipher-suites"
17105
17106       The members of RemoteObjectProperties when  qom-type  is  "x-remote-ob‐
17107       ject"
17108
17109   Since
17110       6.0
17111
17112   object-add (Command)
17113       Create a QOM object.
17114
17115   Arguments
17116       The members of ObjectOptions
17117
17118   Returns
17119       Nothing on success Error if qom-type is not a valid class name
17120
17121   Since
17122       2.0
17123
17124   Example
17125          -> { "execute": "object-add",
17126               "arguments": { "qom-type": "rng-random", "id": "rng1",
17127                              "filename": "/dev/hwrng" } }
17128          <- { "return": {} }
17129
17130   object-del (Command)
17131       Remove a QOM object.
17132
17133   Arguments
17134       id: string
17135              the name of the QOM object to remove
17136
17137   Returns
17138       Nothing on success Error if id is not a valid id for a QOM object
17139
17140   Since
17141       2.0
17142
17143   Example
17144          -> { "execute": "object-del", "arguments": { "id": "rng1" } }
17145          <- { "return": {} }
17146

DEVICE INFRASTRUCTURE (QDEV)

17148   device-list-properties (Command)
17149       List properties associated with a device.
17150
17151   Arguments
17152       typename: string
17153              the type name of a device
17154
17155   Returns
17156       a list of ObjectPropertyInfo describing a devices properties
17157
17158   Note
17159       objects can create properties at runtime, for example to describe links
17160       between different devices and/or objects. These properties are not  in‐
17161       cluded in the output of this command.
17162
17163   Since
17164       1.2
17165
17166   device_add (Command)
17167       Add a device.
17168
17169   Arguments
17170       driver: string
17171              the name of the new device's driver
17172
17173       bus: string (optional)
17174              the device's parent bus (device tree path)
17175
17176       id: string (optional)
17177              the device's ID, must be unique
17178
17179   Features
17180       json-cli
17181              If present, the "-device" command line option supports JSON syn‐
17182              tax with a structure identical to the arguments of this command.
17183
17184   Notes
17185       Additional arguments depend on the type.
17186
17187       1. For detailed information about this command,  please  refer  to  the
17188          'docs/qdev-device-use.txt' file.
17189
17190       2. It's  possible  to  list  device properties by running QEMU with the
17191          "-device DEVICE,help" command-line argument, where DEVICE is the de‐
17192          vice's name
17193
17194   Example
17195          -> { "execute": "device_add",
17196               "arguments": { "driver": "e1000", "id": "net1",
17197                              "bus": "pci.0",
17198                              "mac": "52:54:00:12:34:56" } }
17199          <- { "return": {} }
17200
17201   TODO
17202       This  command  effectively  bypasses  QAPI completely due to its "addi‐
17203       tional arguments" business.  It shouldn't have been added to the schema
17204       in  this  form.  It should be qapified properly, or replaced by a prop‐
17205       erly qapified command.
17206
17207   Since
17208       0.13
17209
17210   device_del (Command)
17211       Remove a device from a guest
17212
17213   Arguments
17214       id: string
17215              the device's ID or QOM path
17216
17217   Returns
17218       Nothing on success If id is not a valid device, DeviceNotFound
17219
17220   Notes
17221       When this command completes, the device may not  be  removed  from  the
17222       guest.   Hot  removal  is an operation that requires guest cooperation.
17223       This command merely requests that  the  guest  begin  the  hot  removal
17224       process.   Completion  of the device removal process is signaled with a
17225       DEVICE_DELETED event. Guest reset will automatically  complete  removal
17226       for  all  devices.  If a guest-side error in the hot removal process is
17227       detected, the device will not be removed and a  DEVICE_UNPLUG_GUEST_ER‐
17228       ROR event is sent.  Some errors cannot be detected.
17229
17230   Since
17231       0.14
17232
17233   Example
17234          -> { "execute": "device_del",
17235               "arguments": { "id": "net1" } }
17236          <- { "return": {} }
17237
17238          -> { "execute": "device_del",
17239               "arguments": { "id": "/machine/peripheral-anon/device[0]" } }
17240          <- { "return": {} }
17241
17242   DEVICE_DELETED (Event)
17243       Emitted  whenever  the device removal completion is acknowledged by the
17244       guest.  At this point, it's safe to reuse the specified device ID.  De‐
17245       vice removal can be initiated by the guest or by HMP/QMP commands.
17246
17247   Arguments
17248       device: string (optional)
17249              the device's ID if it has one
17250
17251       path: string
17252              the device's QOM path
17253
17254   Since
17255       1.5
17256
17257   Example
17258          <- { "event": "DEVICE_DELETED",
17259               "data": { "device": "virtio-net-pci-0",
17260                         "path": "/machine/peripheral/virtio-net-pci-0" },
17261               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
17262
17263   DEVICE_UNPLUG_GUEST_ERROR (Event)
17264       Emitted when a device hot unplug fails due to a guest reported error.
17265
17266   Arguments
17267       device: string (optional)
17268              the device's ID if it has one
17269
17270       path: string
17271              the device's QOM path
17272
17273   Since
17274       6.2
17275
17276   Example
17277          <- { "event": "DEVICE_UNPLUG_GUEST_ERROR"
17278               "data": { "device": "core1",
17279                         "path": "/machine/peripheral/core1" },
17280               },
17281               "timestamp": { "seconds": 1615570772, "microseconds": 202844 } }
17282

MACHINES

17284   SysEmuTarget (Enum)
17285       The comprehensive enumeration of QEMU system emulation ("softmmu") tar‐
17286       gets. Run "./configure --help" in the project root directory, and  look
17287       for the *-softmmu targets near the "--target-list" option. The individ‐
17288       ual target constants are not documented here, for the time being.
17289
17290   Values
17291       rx     since 5.0
17292
17293       avr    since 5.1
17294
17295       aarch64
17296              Not documented
17297
17298       alpha  Not documented
17299
17300       arm    Not documented
17301
17302       cris   Not documented
17303
17304       hppa   Not documented
17305
17306       i386   Not documented
17307
17308       m68k   Not documented
17309
17310       microblaze
17311              Not documented
17312
17313       microblazeel
17314              Not documented
17315
17316       mips   Not documented
17317
17318       mips64 Not documented
17319
17320       mips64el
17321              Not documented
17322
17323       mipsel Not documented
17324
17325       nios2  Not documented
17326
17327       or1k   Not documented
17328
17329       ppc    Not documented
17330
17331       ppc64  Not documented
17332
17333       riscv32
17334              Not documented
17335
17336       riscv64
17337              Not documented
17338
17339       s390x  Not documented
17340
17341       sh4    Not documented
17342
17343       sh4eb  Not documented
17344
17345       sparc  Not documented
17346
17347       sparc64
17348              Not documented
17349
17350       tricore
17351              Not documented
17352
17353       x86_64 Not documented
17354
17355       xtensa Not documented
17356
17357       xtensaeb
17358              Not documented
17359
17360   Notes
17361       The resulting QMP strings can be appended to the "qemu-system-"  prefix
17362       to  produce  the  corresponding QEMU executable name. This is true even
17363       for "qemu-system-x86_64".
17364
17365   Since
17366       3.0
17367
17368   CpuS390State (Enum)
17369       An enumeration of cpu states that can be assumed by a virtual S390 CPU
17370
17371   Values
17372       uninitialized
17373              Not documented
17374
17375       stopped
17376              Not documented
17377
17378       check-stop
17379              Not documented
17380
17381       operating
17382              Not documented
17383
17384       load   Not documented
17385
17386   Since
17387       2.12
17388
17389   CpuInfoS390 (Object)
17390       Additional information about a virtual S390 CPU
17391
17392   Members
17393       cpu-state: CpuS390State
17394              the virtual CPU's state
17395
17396   Since
17397       2.12
17398
17399   CpuInfoFast (Object)
17400       Information about a virtual CPU
17401
17402   Members
17403       cpu-index: int
17404              index of the virtual CPU
17405
17406       qom-path: string
17407              path to the CPU object in the QOM tree
17408
17409       thread-id: int
17410              ID of the underlying host thread
17411
17412       props: CpuInstanceProperties (optional)
17413              properties describing to which  node/socket/core/thread  virtual
17414              CPU belongs to, provided if supported by board
17415
17416       target: SysEmuTarget
17417              the  QEMU  system emulation target, which determines which addi‐
17418              tional fields will be listed (since 3.0)
17419
17420       The members of CpuInfoS390 when target is "s390x"
17421
17422   Since
17423       2.12
17424
17425   query-cpus-fast (Command)
17426       Returns information about all virtual CPUs.
17427
17428   Returns
17429       list of CpuInfoFast
17430
17431   Since
17432       2.12
17433
17434   Example
17435          -> { "execute": "query-cpus-fast" }
17436          <- { "return": [
17437                  {
17438                      "thread-id": 25627,
17439                      "props": {
17440                          "core-id": 0,
17441                          "thread-id": 0,
17442                          "socket-id": 0
17443                      },
17444                      "qom-path": "/machine/unattached/device[0]",
17445                      "arch":"x86",
17446                      "target":"x86_64",
17447                      "cpu-index": 0
17448                  },
17449                  {
17450                      "thread-id": 25628,
17451                      "props": {
17452                          "core-id": 0,
17453                          "thread-id": 0,
17454                          "socket-id": 1
17455                      },
17456                      "qom-path": "/machine/unattached/device[2]",
17457                      "arch":"x86",
17458                      "target":"x86_64",
17459                      "cpu-index": 1
17460                  }
17461              ]
17462          }
17463
17464   MachineInfo (Object)
17465       Information describing a machine.
17466
17467   Members
17468       name: string
17469              the name of the machine
17470
17471       alias: string (optional)
17472              an alias for the machine name
17473
17474       is-default: boolean (optional)
17475              whether the machine is default
17476
17477       cpu-max: int
17478              maximum number of CPUs supported by the machine type (since 1.5)
17479
17480       hotpluggable-cpus: boolean
17481              cpu hotplug via -device is supported (since 2.7)
17482
17483       numa-mem-supported: boolean
17484              true if '-numa node,mem' option is supported by the machine type
17485              and false otherwise (since 4.1)
17486
17487       deprecated: boolean
17488              if  true,  the  machine type is deprecated and may be removed in
17489              future versions of QEMU according to the QEMU deprecation policy
17490              (since 4.1)
17491
17492       default-cpu-type: string (optional)
17493              default CPU model typename if none is requested via the -cpu ar‐
17494              gument. (since 4.2)
17495
17496       default-ram-id: string (optional)
17497              the default ID of initial RAM memory backend (since 5.2)
17498
17499   Since
17500       1.2
17501
17502   query-machines (Command)
17503       Return a list of supported machines
17504
17505   Returns
17506       a list of MachineInfo
17507
17508   Since
17509       1.2
17510
17511   CurrentMachineParams (Object)
17512       Information describing the running machine parameters.
17513
17514   Members
17515       wakeup-suspend-support: boolean
17516              true if the machine supports wake up from suspend
17517
17518   Since
17519       4.0
17520
17521   query-current-machine (Command)
17522       Return information on the current virtual machine.
17523
17524   Returns
17525       CurrentMachineParams
17526
17527   Since
17528       4.0
17529
17530   TargetInfo (Object)
17531       Information describing the QEMU target.
17532
17533   Members
17534       arch: SysEmuTarget
17535              the target architecture
17536
17537   Since
17538       1.2
17539
17540   query-target (Command)
17541       Return information about the target for this QEMU
17542
17543   Returns
17544       TargetInfo
17545
17546   Since
17547       1.2
17548
17549   UuidInfo (Object)
17550       Guest UUID information (Universally Unique Identifier).
17551
17552   Members
17553       UUID: string
17554              the UUID of the guest
17555
17556   Since
17557       0.14
17558
17559   Notes
17560       If no UUID was specified for the guest, a null UUID is returned.
17561
17562   query-uuid (Command)
17563       Query the guest UUID information.
17564
17565   Returns
17566       The UuidInfo for the guest
17567
17568   Since
17569       0.14
17570
17571   Example
17572          -> { "execute": "query-uuid" }
17573          <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
17574
17575   GuidInfo (Object)
17576       GUID information.
17577
17578   Members
17579       guid: string
17580              the globally unique identifier
17581
17582   Since
17583       2.9
17584
17585   query-vm-generation-id (Command)
17586       Show Virtual Machine Generation ID
17587
17588   Since
17589       2.9
17590
17591   system_reset (Command)
17592       Performs a hard reset of a guest.
17593
17594   Since
17595       0.14
17596
17597   Example
17598          -> { "execute": "system_reset" }
17599          <- { "return": {} }
17600
17601   system_powerdown (Command)
17602       Requests that a guest perform a powerdown operation.
17603
17604   Since
17605       0.14
17606
17607   Notes
17608       A guest may or may not respond to this command.  This command returning
17609       does  not indicate that a guest has accepted the request or that it has
17610       shut down.  Many guests will respond to this command by  prompting  the
17611       user in some way.
17612
17613   Example
17614          -> { "execute": "system_powerdown" }
17615          <- { "return": {} }
17616
17617   system_wakeup (Command)
17618       Wake  up guest from suspend. If the guest has wake-up from suspend sup‐
17619       port enabled (wakeup-suspend-support flag from  query-current-machine),
17620       wake-up  guest  from suspend if the guest is in SUSPENDED state. Return
17621       an error otherwise.
17622
17623   Since
17624       1.1
17625
17626   Returns
17627       nothing.
17628
17629   Note
17630       prior to 4.0, this command does nothing in case the  guest  isn't  sus‐
17631       pended.
17632
17633   Example
17634          -> { "execute": "system_wakeup" }
17635          <- { "return": {} }
17636
17637   LostTickPolicy (Enum)
17638       Policy  for handling lost ticks in timer devices.  Ticks end up getting
17639       lost when, for example, the guest is paused.
17640
17641   Values
17642       discard
17643              throw away the missed ticks and continue with  future  injection
17644              normally.   The  guest OS will see the timer jump ahead by a po‐
17645              tentially quite significant amount all at once, as if the inter‐
17646              vening  chunk  of  time had simply not existed; needless to say,
17647              such a sudden jump can easily confuse a guest OS  which  is  not
17648              specifically  prepared  to  deal with it.  Assuming the guest OS
17649              can deal correctly with the time jump, the time in the guest and
17650              in the host should now match.
17651
17652       delay  continue to deliver ticks at the normal rate.  The guest OS will
17653              not notice anything is amiss, as from its  point  of  view  time
17654              will  have  continued  to  flow normally.  The time in the guest
17655              should now be behind the time in the host by exactly the  amount
17656              of time during which ticks have been missed.
17657
17658       slew   deliver  ticks  at  a  higher  rate  to catch up with the missed
17659              ticks.  The guest OS will not notice anything is amiss, as  from
17660              its  point  of  view  time will have continued to flow normally.
17661              Once the timer has managed to catch  up  with  all  the  missing
17662              ticks, the time in the guest and in the host should match.
17663
17664   Since
17665       2.0
17666
17667   inject-nmi (Command)
17668       Injects a Non-Maskable Interrupt into the default CPU (x86/s390) or all
17669       CPUs (ppc64).  The command fails when the guest doesn't support inject‐
17670       ing.
17671
17672   Returns
17673       If successful, nothing
17674
17675   Since
17676       0.14
17677
17678   Note
17679       prior to 2.1, this command was only supported for x86 and s390 VMs
17680
17681   Example
17682          -> { "execute": "inject-nmi" }
17683          <- { "return": {} }
17684
17685   KvmInfo (Object)
17686       Information about support for KVM acceleration
17687
17688   Members
17689       enabled: boolean
17690              true if KVM acceleration is active
17691
17692       present: boolean
17693              true if KVM acceleration is built into this executable
17694
17695   Since
17696       0.14
17697
17698   query-kvm (Command)
17699       Returns information about KVM acceleration
17700
17701   Returns
17702       KvmInfo
17703
17704   Since
17705       0.14
17706
17707   Example
17708          -> { "execute": "query-kvm" }
17709          <- { "return": { "enabled": true, "present": true } }
17710
17711   NumaOptionsType (Enum)
17712   Values
17713       node   NUMA nodes configuration
17714
17715       dist   NUMA distance configuration (since 2.10)
17716
17717       cpu    property based CPU(s) to node mapping (Since: 2.10)
17718
17719       hmat-lb
17720              memory latency and bandwidth information (Since: 5.0)
17721
17722       hmat-cache
17723              memory side cache information (Since: 5.0)
17724
17725   Since
17726       2.1
17727
17728   NumaOptions (Object)
17729       A discriminated record of NUMA options. (for OptsVisitor)
17730
17731   Members
17732       type: NumaOptionsType
17733              Not documented
17734
17735       The members of NumaNodeOptions when type is "node"
17736
17737       The members of NumaDistOptions when type is "dist"
17738
17739       The members of NumaCpuOptions when type is "cpu"
17740
17741       The members of NumaHmatLBOptions when type is "hmat-lb"
17742
17743       The members of NumaHmatCacheOptions when type is "hmat-cache"
17744
17745   Since
17746       2.1
17747
17748   NumaNodeOptions (Object)
17749       Create a guest NUMA node. (for OptsVisitor)
17750
17751   Members
17752       nodeid: int (optional)
17753              NUMA node ID (increase by 1 from 0 if omitted)
17754
17755       cpus: array of int (optional)
17756
17757              VCPUs belonging to this node (assign VCPUS round-robin
17758                     if omitted)
17759
17760       mem: int (optional)
17761              memory  size  of  this  node;  mutually  exclusive  with memdev.
17762              Equally divide total memory among nodes if both mem  and  memdev
17763              are omitted.
17764
17765       memdev: string (optional)
17766              memory  backend  object.   If specified for one node, it must be
17767              specified for all nodes.
17768
17769       initiator: int (optional)
17770              defined in ACPI 6.3 Chapter 5.2.27.3 Table 5-145, points to  the
17771              nodeid which has the memory controller responsible for this NUMA
17772              node. This field provides additional information as to the  ini‐
17773              tiator  node  that  is closest (as in directly attached) to this
17774              node, and therefore has the best performance (since 5.0)
17775
17776   Since
17777       2.1
17778
17779   NumaDistOptions (Object)
17780       Set the distance between 2 NUMA nodes.
17781
17782   Members
17783       src: int
17784              source NUMA node.
17785
17786       dst: int
17787              destination NUMA node.
17788
17789       val: int
17790              NUMA distance from source node to destination node.  When a node
17791              is  unreachable from another node, set the distance between them
17792              to 255.
17793
17794   Since
17795       2.10
17796
17797   X86CPURegister32 (Enum)
17798       A X86 32-bit register
17799
17800   Values
17801       EAX    Not documented
17802
17803       EBX    Not documented
17804
17805       ECX    Not documented
17806
17807       EDX    Not documented
17808
17809       ESP    Not documented
17810
17811       EBP    Not documented
17812
17813       ESI    Not documented
17814
17815       EDI    Not documented
17816
17817   Since
17818       1.5
17819
17820   X86CPUFeatureWordInfo (Object)
17821       Information about a X86 CPU feature word
17822
17823   Members
17824       cpuid-input-eax: int
17825              Input EAX value for CPUID instruction for that feature word
17826
17827       cpuid-input-ecx: int (optional)
17828              Input ECX value for CPUID instruction for that feature word
17829
17830       cpuid-register: X86CPURegister32
17831              Output register containing the feature bits
17832
17833       features: int
17834              value of output register, containing the feature bits
17835
17836   Since
17837       1.5
17838
17839   DummyForceArrays (Object)
17840       Not used by QMP; hack to let us  use  X86CPUFeatureWordInfoList  inter‐
17841       nally
17842
17843   Members
17844       unused: array of X86CPUFeatureWordInfo
17845              Not documented
17846
17847   Since
17848       2.5
17849
17850   NumaCpuOptions (Object)
17851       Option  "-numa  cpu" overrides default cpu to node mapping.  It accepts
17852       the  same  set  of  cpu  properties  as  returned   by   query-hotplug‐
17853       gable-cpus[].props,  where  node-id  could  be used to override default
17854       node mapping.
17855
17856   Members
17857       The members of CpuInstanceProperties
17858
17859   Since
17860       2.10
17861
17862   HmatLBMemoryHierarchy (Enum)
17863       The memory hierarchy in the System Locality Latency and  Bandwidth  In‐
17864       formation Structure of HMAT (Heterogeneous Memory Attribute Table)
17865
17866       For more information about HmatLBMemoryHierarchy, see chapter 5.2.27.4:
17867       Table 5-146: Field "Flags" of ACPI 6.3 spec.
17868
17869   Values
17870       memory the structure represents the memory performance
17871
17872       first-level
17873              first level of memory side cache
17874
17875       second-level
17876              second level of memory side cache
17877
17878       third-level
17879              third level of memory side cache
17880
17881   Since
17882       5.0
17883
17884   HmatLBDataType (Enum)
17885       Data type in the System  Locality  Latency  and  Bandwidth  Information
17886       Structure of HMAT (Heterogeneous Memory Attribute Table)
17887
17888       For  more information about HmatLBDataType, see chapter 5.2.27.4: Table
17889       5-146:  Field "Data Type" of ACPI 6.3 spec.
17890
17891   Values
17892       access-latency
17893              access latency (nanoseconds)
17894
17895       read-latency
17896              read latency (nanoseconds)
17897
17898       write-latency
17899              write latency (nanoseconds)
17900
17901       access-bandwidth
17902              access bandwidth (Bytes per second)
17903
17904       read-bandwidth
17905              read bandwidth (Bytes per second)
17906
17907       write-bandwidth
17908              write bandwidth (Bytes per second)
17909
17910   Since
17911       5.0
17912
17913   NumaHmatLBOptions (Object)
17914       Set the system locality latency and bandwidth information between  Ini‐
17915       tiator and Target proximity Domains.
17916
17917       For more information about NumaHmatLBOptions, see chapter 5.2.27.4: Ta‐
17918       ble 5-146 of ACPI 6.3 spec.
17919
17920   Members
17921       initiator: int
17922              the Initiator Proximity Domain.
17923
17924       target: int
17925              the Target Proximity Domain.
17926
17927       hierarchy: HmatLBMemoryHierarchy
17928              the Memory Hierarchy. Indicates the  performance  of  memory  or
17929              side cache.
17930
17931       data-type: HmatLBDataType
17932              presents  the type of data, access/read/write latency or hit la‐
17933              tency.
17934
17935       latency: int (optional)
17936              the value of latency from initiator to target proximity  domain,
17937              the latency unit is "ns(nanosecond)".
17938
17939       bandwidth: int (optional)
17940              the  value  of  bandwidth between initiator and target proximity
17941              domain, the bandwidth unit is "Bytes per second".
17942
17943   Since
17944       5.0
17945
17946   HmatCacheAssociativity (Enum)
17947       Cache associativity in the Memory Side Cache Information  Structure  of
17948       HMAT
17949
17950       For  more  information of HmatCacheAssociativity, see chapter 5.2.27.5:
17951       Table 5-147 of ACPI 6.3 spec.
17952
17953   Values
17954       none
17955
17956              None (no memory side cache in this proximity domain,
17957                     or cache associativity unknown)
17958
17959       direct Direct Mapped
17960
17961       complex
17962              Complex Cache Indexing (implementation specific)
17963
17964   Since
17965       5.0
17966
17967   HmatCacheWritePolicy (Enum)
17968       Cache write policy in the Memory Side Cache  Information  Structure  of
17969       HMAT
17970
17971       For more information of HmatCacheWritePolicy, see chapter 5.2.27.5: Ta‐
17972       ble 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
17973
17974   Values
17975       none   None (no memory side cache in this proximity  domain,  or  cache
17976              write policy unknown)
17977
17978       write-back
17979              Write Back (WB)
17980
17981       write-through
17982              Write Through (WT)
17983
17984   Since
17985       5.0
17986
17987   NumaHmatCacheOptions (Object)
17988       Set the memory side cache information for a given memory domain.
17989
17990       For more information of NumaHmatCacheOptions, see chapter 5.2.27.5: Ta‐
17991       ble 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
17992
17993   Members
17994       node-id: int
17995              the memory proximity domain to which the memory belongs.
17996
17997       size: int
17998              the size of memory side cache in bytes.
17999
18000       level: int
18001              the cache level described in this structure.
18002
18003       associativity: HmatCacheAssociativity
18004              the  cache   associativity,   none/direct-mapped/complex(complex
18005              cache indexing).
18006
18007       policy: HmatCacheWritePolicy
18008              the write policy, none/write-back/write-through.
18009
18010       line: int
18011              the cache Line size in bytes.
18012
18013   Since
18014       5.0
18015
18016   memsave (Command)
18017       Save a portion of guest memory to a file.
18018
18019   Arguments
18020       val: int
18021              the virtual address of the guest to start from
18022
18023       size: int
18024              the size of memory region to save
18025
18026       filename: string
18027              the file to save the memory to as binary data
18028
18029       cpu-index: int (optional)
18030              the  index of the virtual CPU to use for translating the virtual
18031              address (defaults to CPU 0)
18032
18033   Returns
18034       Nothing on success
18035
18036   Since
18037       0.14
18038
18039   Notes
18040       Errors were not reliably returned until 1.1
18041
18042   Example
18043          -> { "execute": "memsave",
18044               "arguments": { "val": 10,
18045                              "size": 100,
18046                              "filename": "/tmp/virtual-mem-dump" } }
18047          <- { "return": {} }
18048
18049   pmemsave (Command)
18050       Save a portion of guest physical memory to a file.
18051
18052   Arguments
18053       val: int
18054              the physical address of the guest to start from
18055
18056       size: int
18057              the size of memory region to save
18058
18059       filename: string
18060              the file to save the memory to as binary data
18061
18062   Returns
18063       Nothing on success
18064
18065   Since
18066       0.14
18067
18068   Notes
18069       Errors were not reliably returned until 1.1
18070
18071   Example
18072          -> { "execute": "pmemsave",
18073               "arguments": { "val": 10,
18074                              "size": 100,
18075                              "filename": "/tmp/physical-mem-dump" } }
18076          <- { "return": {} }
18077
18078   Memdev (Object)
18079       Information about memory backend
18080
18081   Members
18082       id: string (optional)
18083              backend's ID if backend has 'id' property (since 2.9)
18084
18085       size: int
18086              memory backend size
18087
18088       merge: boolean
18089              whether memory merge support is enabled
18090
18091       dump: boolean
18092              whether memory backend's memory is included in a core dump
18093
18094       prealloc: boolean
18095              whether memory was preallocated
18096
18097       share: boolean
18098              whether memory is private to QEMU or shared (since 6.1)
18099
18100       reserve: boolean (optional)
18101              whether swap space (or huge pages) was reserved  if  applicable.
18102              This  corresponds  to  the user configuration and not the actual
18103              behavior implemented in the OS to perform the reservation.   For
18104              example,  Linux  will  never  reserve swap space for shared file
18105              mappings. (since 6.1)
18106
18107       host-nodes: array of int
18108              host nodes for its memory policy
18109
18110       policy: HostMemPolicy
18111              memory policy of memory backend
18112
18113   Since
18114       2.1
18115
18116   query-memdev (Command)
18117       Returns information for all memory backends.
18118
18119   Returns
18120       a list of Memdev.
18121
18122   Since
18123       2.1
18124
18125   Example
18126          -> { "execute": "query-memdev" }
18127          <- { "return": [
18128                 {
18129                   "id": "mem1",
18130                   "size": 536870912,
18131                   "merge": false,
18132                   "dump": true,
18133                   "prealloc": false,
18134                   "host-nodes": [0, 1],
18135                   "policy": "bind"
18136                 },
18137                 {
18138                   "size": 536870912,
18139                   "merge": false,
18140                   "dump": true,
18141                   "prealloc": true,
18142                   "host-nodes": [2, 3],
18143                   "policy": "preferred"
18144                 }
18145               ]
18146             }
18147
18148   CpuInstanceProperties (Object)
18149       List of properties to be used for hotplugging a CPU instance, it should
18150       be  passed  by  management  with device_add command when a CPU is being
18151       hotplugged.
18152
18153   Members
18154       node-id: int (optional)
18155              NUMA node ID the CPU belongs to
18156
18157       socket-id: int (optional)
18158              socket number within node/board the CPU belongs to
18159
18160       die-id: int (optional)
18161              die number within node/board the CPU belongs to (Since 4.1)
18162
18163       core-id: int (optional)
18164              core number within die the CPU belongs to
18165
18166       thread-id: int (optional)
18167              thread number within core the CPU belongs to
18168
18169   Note
18170       currently there are 5 properties that could be present  but  management
18171       should  be  prepared  to  pass through other properties with device_add
18172       command to allow for future interface extension. This also requires the
18173       filed  names  to  be  kept  in  sync with the properties passed to -de‐
18174       vice/device_add.
18175
18176   Since
18177       2.7
18178
18179   HotpluggableCPU (Object)
18180   Members
18181       type: string
18182              CPU object type for usage with device_add command
18183
18184       props: CpuInstanceProperties
18185              list of properties to be used for hotplugging CPU
18186
18187       vcpus-count: int
18188              number of logical VCPU threads HotpluggableCPU provides
18189
18190       qom-path: string (optional)
18191              link to existing CPU object if CPU is present or omitted if  CPU
18192              is not present.
18193
18194   Since
18195       2.7
18196
18197   query-hotpluggable-cpus (Command)
18198   TODO
18199       Better documentation; currently there is none.
18200
18201   Returns
18202       a list of HotpluggableCPU objects.
18203
18204   Since
18205       2.7
18206
18207   Example
18208          For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu POWER8:
18209
18210          -> { "execute": "query-hotpluggable-cpus" }
18211          <- {"return": [
18212               { "props": { "core": 8 }, "type": "POWER8-spapr-cpu-core",
18213                 "vcpus-count": 1 },
18214               { "props": { "core": 0 }, "type": "POWER8-spapr-cpu-core",
18215                 "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"}
18216             ]}'
18217
18218          For pc machine type started with -smp 1,maxcpus=2:
18219
18220          -> { "execute": "query-hotpluggable-cpus" }
18221          <- {"return": [
18222               {
18223                  "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
18224                  "props": {"core-id": 0, "socket-id": 1, "thread-id": 0}
18225               },
18226               {
18227                  "qom-path": "/machine/unattached/device[0]",
18228                  "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
18229                  "props": {"core-id": 0, "socket-id": 0, "thread-id": 0}
18230               }
18231             ]}
18232
18233          For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu qemu
18234          (Since: 2.11):
18235
18236          -> { "execute": "query-hotpluggable-cpus" }
18237          <- {"return": [
18238               {
18239                  "type": "qemu-s390x-cpu", "vcpus-count": 1,
18240                  "props": { "core-id": 1 }
18241               },
18242               {
18243                  "qom-path": "/machine/unattached/device[0]",
18244                  "type": "qemu-s390x-cpu", "vcpus-count": 1,
18245                  "props": { "core-id": 0 }
18246               }
18247             ]}
18248
18249   set-numa-node (Command)
18250       Runtime  equivalent  of  '-numa'  CLI option, available at preconfigure
18251       stage to configure numa mapping before initializing machine.
18252
18253       Since 3.0
18254
18255   Arguments
18256       The members of NumaOptions
18257
18258   balloon (Command)
18259       Request the balloon driver to change its balloon size.
18260
18261   Arguments
18262       value: int
18263              the target logical size of the VM in bytes.  We can  deduce  the
18264              size of the balloon using this formula:
18265                 logical_vm_size = vm_ram_size - balloon_size
18266
18267              From it we have: balloon_size = vm_ram_size - value
18268
18269   Returns
18270       • Nothing on success
18271
18272       • If  the  balloon driver is enabled but not functional because the KVM
18273         kernel module cannot support it, KvmMissingCap
18274
18275       • If no balloon device is present, DeviceNotActive
18276
18277   Notes
18278       This command just issues a request to the guest.  When it returns,  the
18279       balloon size may not have changed.  A guest can change the balloon size
18280       independent of this command.
18281
18282   Since
18283       0.14
18284
18285   Example
18286          -> { "execute": "balloon", "arguments": { "value": 536870912 } }
18287          <- { "return": {} }
18288
18289          With a 2.5GiB guest this command inflated the ballon to 3GiB.
18290
18291   BalloonInfo (Object)
18292       Information about the guest balloon device.
18293
18294   Members
18295       actual: int
18296              the logical  size  of  the  VM  in  bytes  Formula  used:  logi‐
18297              cal_vm_size = vm_ram_size - balloon_size
18298
18299   Since
18300       0.14
18301
18302   query-balloon (Command)
18303       Return information about the balloon device.
18304
18305   Returns
18306BalloonInfo on success
18307
18308       • If  the  balloon driver is enabled but not functional because the KVM
18309         kernel module cannot support it, KvmMissingCap
18310
18311       • If no balloon device is present, DeviceNotActive
18312
18313   Since
18314       0.14
18315
18316   Example
18317          -> { "execute": "query-balloon" }
18318          <- { "return": {
18319                   "actual": 1073741824,
18320                }
18321             }
18322
18323   BALLOON_CHANGE (Event)
18324       Emitted when the guest changes the actual BALLOON level. This value  is
18325       equivalent to the actual field return by the 'query-balloon' command
18326
18327   Arguments
18328       actual: int
18329              the  logical  size  of  the  VM  in  bytes  Formula  used: logi‐
18330              cal_vm_size = vm_ram_size - balloon_size
18331
18332   Note
18333       this event is rate-limited.
18334
18335   Since
18336       1.2
18337
18338   Example
18339          <- { "event": "BALLOON_CHANGE",
18340               "data": { "actual": 944766976 },
18341               "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
18342
18343   MemoryInfo (Object)
18344       Actual memory information in bytes.
18345
18346   Members
18347       base-memory: int
18348              size of "base" memory specified with command line option -m.
18349
18350       plugged-memory: int (optional)
18351              size of memory that can be hot-unplugged. This field is  omitted
18352              if target doesn't support memory hotplug (i.e. CONFIG_MEM_DEVICE
18353              not defined at build time).
18354
18355   Since
18356       2.11
18357
18358   query-memory-size-summary (Command)
18359       Return the amount of initially allocated and present  hotpluggable  (if
18360       enabled) memory in bytes.
18361
18362   Example
18363          -> { "execute": "query-memory-size-summary" }
18364          <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } }
18365
18366   Since
18367       2.11
18368
18369   PCDIMMDeviceInfo (Object)
18370       PCDIMMDevice state information
18371
18372   Members
18373       id: string (optional)
18374              device's ID
18375
18376       addr: int
18377              physical address, where device is mapped
18378
18379       size: int
18380              size of memory that the device provides
18381
18382       slot: int
18383              slot number at which device is plugged in
18384
18385       node: int
18386              NUMA node number where device is plugged in
18387
18388       memdev: string
18389              memory backend linked with device
18390
18391       hotplugged: boolean
18392              true if device was hotplugged
18393
18394       hotpluggable: boolean
18395              true  if  device if could be added/removed while machine is run‐
18396              ning
18397
18398   Since
18399       2.1
18400
18401   VirtioPMEMDeviceInfo (Object)
18402       VirtioPMEM state information
18403
18404   Members
18405       id: string (optional)
18406              device's ID
18407
18408       memaddr: int
18409              physical address in memory, where device is mapped
18410
18411       size: int
18412              size of memory that the device provides
18413
18414       memdev: string
18415              memory backend linked with device
18416
18417   Since
18418       4.1
18419
18420   VirtioMEMDeviceInfo (Object)
18421       VirtioMEMDevice state information
18422
18423   Members
18424       id: string (optional)
18425              device's ID
18426
18427       memaddr: int
18428              physical address in memory, where device is mapped
18429
18430       requested-size: int
18431              the user requested size of the device
18432
18433       size: int
18434              the (current) size of memory that the device provides
18435
18436       max-size: int
18437              the maximum size of memory that the device can provide
18438
18439       block-size: int
18440              the block size of memory that the device provides
18441
18442       node: int
18443              NUMA node number where device is assigned to
18444
18445       memdev: string
18446              memory backend linked with the region
18447
18448   Since
18449       5.1
18450
18451   SgxEPCDeviceInfo (Object)
18452       Sgx EPC state information
18453
18454   Members
18455       id: string (optional)
18456              device's ID
18457
18458       memaddr: int
18459              physical address in memory, where device is mapped
18460
18461       size: int
18462              size of memory that the device provides
18463
18464       memdev: string
18465              memory backend linked with device
18466
18467   Since
18468       6.2
18469
18470   MemoryDeviceInfoKind (Enum)
18471   Values
18472       dimm   Not documented
18473
18474       nvdimm Not documented
18475
18476       virtio-pmem
18477              Not documented
18478
18479       virtio-mem
18480              Not documented
18481
18482       sgx-epc
18483              Not documented
18484
18485   Since
18486       2.1
18487
18488   PCDIMMDeviceInfoWrapper (Object)
18489   Members
18490       data: PCDIMMDeviceInfo
18491              Not documented
18492
18493   Since
18494       2.1
18495
18496   VirtioPMEMDeviceInfoWrapper (Object)
18497   Members
18498       data: VirtioPMEMDeviceInfo
18499              Not documented
18500
18501   Since
18502       2.1
18503
18504   VirtioMEMDeviceInfoWrapper (Object)
18505   Members
18506       data: VirtioMEMDeviceInfo
18507              Not documented
18508
18509   Since
18510       2.1
18511
18512   SgxEPCDeviceInfoWrapper (Object)
18513   Members
18514       data: SgxEPCDeviceInfo
18515              Not documented
18516
18517   Since
18518       6.2
18519
18520   MemoryDeviceInfo (Object)
18521       Union containing information about a memory device
18522
18523       nvdimm is included since 2.12. virtio-pmem is included since 4.1.  vir‐
18524       tio-mem is included since 5.1. sgx-epc is included since 6.2.
18525
18526   Members
18527       type: MemoryDeviceInfoKind
18528              Not documented
18529
18530       The members of PCDIMMDeviceInfoWrapper when type is "dimm"
18531
18532       The members of PCDIMMDeviceInfoWrapper when type is "nvdimm"
18533
18534       The members of VirtioPMEMDeviceInfoWrapper when type is "virtio-pmem"
18535
18536       The members of VirtioMEMDeviceInfoWrapper when type is "virtio-mem"
18537
18538       The members of SgxEPCDeviceInfoWrapper when type is "sgx-epc"
18539
18540   Since
18541       2.1
18542
18543   SgxEPC (Object)
18544       Sgx EPC cmdline information
18545
18546   Members
18547       memdev: string
18548              memory backend linked with device
18549
18550   Since
18551       6.2
18552
18553   SgxEPCProperties (Object)
18554       SGX properties of machine types.
18555
18556   Members
18557       sgx-epc: array of SgxEPC
18558              list of ids of memory-backend-epc objects.
18559
18560   Since
18561       6.2
18562
18563   query-memory-devices (Command)
18564       Lists available memory devices and their state
18565
18566   Since
18567       2.1
18568
18569   Example
18570          -> { "execute": "query-memory-devices" }
18571          <- { "return": [ { "data":
18572                                { "addr": 5368709120,
18573                                  "hotpluggable": true,
18574                                  "hotplugged": true,
18575                                  "id": "d1",
18576                                  "memdev": "/objects/memX",
18577                                  "node": 0,
18578                                  "size": 1073741824,
18579                                  "slot": 0},
18580                             "type": "dimm"
18581                           } ] }
18582
18583   MEMORY_DEVICE_SIZE_CHANGE (Event)
18584       Emitted when the size of a memory device changes. Only emitted for mem‐
18585       ory devices that can actually change the size (e.g., virtio-mem due  to
18586       guest action).
18587
18588   Arguments
18589       id: string (optional)
18590              device's ID
18591
18592       size: int
18593              the new size of memory that the device provides
18594
18595       qom-path: string
18596              path to the device object in the QOM tree (since 6.2)
18597
18598   Note
18599       this event is rate-limited.
18600
18601   Since
18602       5.1
18603
18604   Example
18605          <- { "event": "MEMORY_DEVICE_SIZE_CHANGE",
18606               "data": { "id": "vm0", "size": 1073741824},
18607               "timestamp": { "seconds": 1588168529, "microseconds": 201316 } }
18608
18609   MEM_UNPLUG_ERROR (Event)
18610       Emitted when memory hot unplug error occurs.
18611
18612   Arguments
18613       device: string
18614              device name
18615
18616       msg: string
18617              Informative message
18618
18619   Features
18620       deprecated
18621              This event is deprecated. Use DEVICE_UNPLUG_GUEST_ERROR instead.
18622
18623   Since
18624       2.4
18625
18626   Example
18627          <- { "event": "MEM_UNPLUG_ERROR"
18628               "data": { "device": "dimm1",
18629                         "msg": "acpi: device unplug for unsupported device"
18630               },
18631               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
18632
18633   SMPConfiguration (Object)
18634       Schema  for CPU topology configuration.  A missing value lets QEMU fig‐
18635       ure out a suitable value based on the ones that are provided.
18636
18637   Members
18638       cpus: int (optional)
18639              number of virtual CPUs in the virtual machine
18640
18641       sockets: int (optional)
18642              number of sockets in the CPU topology
18643
18644       dies: int (optional)
18645              number of dies per socket in the CPU topology
18646
18647       cores: int (optional)
18648              number of cores per die in the CPU topology
18649
18650       threads: int (optional)
18651              number of threads per core in the CPU topology
18652
18653       maxcpus: int (optional)
18654              maximum number of hotpluggable virtual CPUs in the  virtual  ma‐
18655              chine
18656
18657   Since
18658       6.1
18659
18660   x-query-irq (Command)
18661       Query interrupt statistics
18662
18663   Features
18664       unstable
18665              This command is meant for debugging.
18666
18667   Returns
18668       interrupt statistics
18669
18670   Since
18671       6.2
18672
18673   x-query-jit (Command)
18674       Query TCG compiler statistics
18675
18676   Features
18677       unstable
18678              This command is meant for debugging.
18679
18680   Returns
18681       TCG compiler statistics
18682
18683   Since
18684       6.2
18685
18686   If
18687       CONFIG_TCG
18688
18689   x-query-numa (Command)
18690       Query NUMA topology information
18691
18692   Features
18693       unstable
18694              This command is meant for debugging.
18695
18696   Returns
18697       topology information
18698
18699   Since
18700       6.2
18701
18702   x-query-opcount (Command)
18703       Query TCG opcode counters
18704
18705   Features
18706       unstable
18707              This command is meant for debugging.
18708
18709   Returns
18710       TCG opcode counters
18711
18712   Since
18713       6.2
18714
18715   If
18716       CONFIG_TCG
18717
18718   x-query-profile (Command)
18719       Query TCG profiling information
18720
18721   Features
18722       unstable
18723              This command is meant for debugging.
18724
18725   Returns
18726       profile information
18727
18728   Since
18729       6.2
18730
18731   x-query-ramblock (Command)
18732       Query system ramblock information
18733
18734   Features
18735       unstable
18736              This command is meant for debugging.
18737
18738   Returns
18739       system ramblock information
18740
18741   Since
18742       6.2
18743
18744   x-query-rdma (Command)
18745       Query RDMA state
18746
18747   Features
18748       unstable
18749              This command is meant for debugging.
18750
18751   Returns
18752       RDMA state
18753
18754   Since
18755       6.2
18756
18757   x-query-roms (Command)
18758       Query information on the registered ROMS
18759
18760   Features
18761       unstable
18762              This command is meant for debugging.
18763
18764   Returns
18765       registered ROMs
18766
18767   Since
18768       6.2
18769
18770   x-query-usb (Command)
18771       Query information on the USB devices
18772
18773   Features
18774       unstable
18775              This command is meant for debugging.
18776
18777   Returns
18778       USB device information
18779
18780   Since
18781       6.2
18782
18783   CpuModelInfo (Object)
18784       Virtual CPU model.
18785
18786       A  CPU  model  consists of the name of a CPU definition, to which delta
18787       changes are applied (e.g. features added/removed).  Most  magic  values
18788       that  an  architecture  might require should be hidden behind the name.
18789       However, if required, architectures can expose relevant properties.
18790
18791   Members
18792       name: string
18793              the name of the CPU definition the model is based on
18794
18795       props: value (optional)
18796              a dictionary of QOM properties to be applied
18797
18798   Since
18799       2.8
18800
18801   CpuModelExpansionType (Enum)
18802       An enumeration of CPU model expansion types.
18803
18804   Values
18805       static Expand to a static CPU model, a combination  of  a  static  base
18806              model  name and property delta changes. As the static base model
18807              will never change, the expanded CPU model will be the same,  in‐
18808              dependent  of  QEMU  version, machine type, machine options, and
18809              accelerator options.  Therefore, the resulting model can be used
18810              by  tooling  without having to specify a compatibility machine -
18811              e.g. when displaying the "host" model. The static CPU models are
18812              migration-safe.
18813
18814       full   Expand  all  properties. The produced model is not guaranteed to
18815              be migration-safe, but allows tooling to get an insight and work
18816              with model details.
18817
18818   Note
18819       When  a  non-migration-safe  CPU model is expanded in static mode, some
18820       features enabled by the CPU model may be omitted, because they can't be
18821       implemented   by  a  static  CPU  model  definition  (e.g.  cache  info
18822       passthrough and PMU passthrough in x86). If you need an accurate repre‐
18823       sentation  of  the  features enabled by a non-migration-safe CPU model,
18824       use full. If you need a static representation that will keep  ABI  com‐
18825       patibility  even when changing QEMU version or machine-type, use static
18826       (but keep in mind that some features may be omitted).
18827
18828   Since
18829       2.8
18830
18831   CpuModelCompareResult (Enum)
18832       An enumeration of CPU model comparison results. The result  is  usually
18833       calculated using e.g. CPU features or CPU generations.
18834
18835   Values
18836       incompatible
18837              If model A is incompatible to model B, model A is not guaranteed
18838              to run where model B runs and the other way around.
18839
18840       identical
18841              If model A is identical to model B, model A is guaranteed to run
18842              where model B runs and the other way around.
18843
18844       superset
18845              If  model  A  is a superset of model B, model B is guaranteed to
18846              run where model A runs. There are no guarantees about the  other
18847              way.
18848
18849       subset If  model A is a subset of model B, model A is guaranteed to run
18850              where model B runs. There are no guarantees about the other way.
18851
18852   Since
18853       2.8
18854
18855   CpuModelBaselineInfo (Object)
18856       The result of a CPU model baseline.
18857
18858   Members
18859       model: CpuModelInfo
18860              the baselined CpuModelInfo.
18861
18862   Since
18863       2.8
18864
18865   If
18866       TARGET_S390X
18867
18868   CpuModelCompareInfo (Object)
18869       The result of a CPU model comparison.
18870
18871   Members
18872       result: CpuModelCompareResult
18873              The result of the compare operation.
18874
18875       responsible-properties: array of string
18876              List of properties that led to the comparison result  not  being
18877              identical.
18878       responsible-properties is a list of QOM property names that led to both
18879       CPUs not being detected as identical. For identical models,  this  list
18880       is  empty.  If a QOM property is read-only, that means there's no known
18881       way to make the CPU models identical.  If  the  special  property  name
18882       "type" is included, the models are by definition not identical and can‐
18883       not be made identical.
18884
18885   Since
18886       2.8
18887
18888   If
18889       TARGET_S390X
18890
18891   query-cpu-model-comparison (Command)
18892       Compares two CPU models, returning how they compare in a specific  con‐
18893       figuration.  The  results  indicates  how both models compare regarding
18894       runnability. This result can be used by tooling to make decisions if  a
18895       certain  CPU model will run in a certain configuration or if a compati‐
18896       ble CPU model has to be created by baselining.
18897
18898       Usually, a CPU model is compared against the maximum possible CPU model
18899       of a certain configuration (e.g. the "host" model for KVM). If that CPU
18900       model is identical or a subset, it will run in that configuration.
18901
18902       The result returned by this command may be affected by:
18903
18904       • QEMU version: CPU models may look different  depending  on  the  QEMU
18905         version.    (Except   for   CPU   models   reported  as  "static"  in
18906         query-cpu-definitions.)
18907
18908       • machine-type: CPU model may  look  different  depending  on  the  ma‐
18909         chine-type.    (Except   for  CPU  models  reported  as  "static"  in
18910         query-cpu-definitions.)
18911
18912       • machine options (including accelerator): in some  architectures,  CPU
18913         models  may  look  different depending on machine and accelerator op‐
18914         tions. (Except for CPU models reported as "static" in query-cpu-defi‐
18915         nitions.)
18916
18917       • "-cpu"  arguments and global properties: arguments to the -cpu option
18918         and global properties may  affect  expansion  of  CPU  models.  Using
18919         query-cpu-model-expansion while using these is not advised.
18920
18921       Some architectures may not support comparing CPU models. s390x supports
18922       comparing CPU models.
18923
18924   Arguments
18925       modela: CpuModelInfo
18926              Not documented
18927
18928       modelb: CpuModelInfo
18929              Not documented
18930
18931   Returns
18932       a CpuModelBaselineInfo. Returns an error if comparing CPU models is not
18933       supported,  if  a  model cannot be used, if a model contains an unknown
18934       cpu definition name, unknown properties or properties with wrong types.
18935
18936   Note
18937       this command isn't specific to s390x, but is only implemented  on  this
18938       architecture currently.
18939
18940   Since
18941       2.8
18942
18943   If
18944       TARGET_S390X
18945
18946   query-cpu-model-baseline (Command)
18947       Baseline two CPU models, creating a compatible third model. The created
18948       model will always be a static, migration-safe CPU model  (see  "static"
18949       CPU model expansion for details).
18950
18951       This  interface can be used by tooling to create a compatible CPU model
18952       out two CPU models. The created CPU model will be  identical  to  or  a
18953       subset  of  both CPU models when comparing them. Therefore, the created
18954       CPU model is guaranteed to run where the given CPU models run.
18955
18956       The result returned by this command may be affected by:
18957
18958       • QEMU version: CPU models may look different  depending  on  the  QEMU
18959         version.    (Except   for   CPU   models   reported  as  "static"  in
18960         query-cpu-definitions.)
18961
18962       • machine-type: CPU model may  look  different  depending  on  the  ma‐
18963         chine-type.    (Except   for  CPU  models  reported  as  "static"  in
18964         query-cpu-definitions.)
18965
18966       • machine options (including accelerator): in some  architectures,  CPU
18967         models  may  look  different depending on machine and accelerator op‐
18968         tions. (Except for CPU models reported as "static" in query-cpu-defi‐
18969         nitions.)
18970
18971       • "-cpu"  arguments and global properties: arguments to the -cpu option
18972         and global properties may  affect  expansion  of  CPU  models.  Using
18973         query-cpu-model-expansion while using these is not advised.
18974
18975       Some  architectures  may  not support baselining CPU models. s390x sup‐
18976       ports baselining CPU models.
18977
18978   Arguments
18979       modela: CpuModelInfo
18980              Not documented
18981
18982       modelb: CpuModelInfo
18983              Not documented
18984
18985   Returns
18986       a CpuModelBaselineInfo. Returns an error if baselining  CPU  models  is
18987       not  supported,  if  a model cannot be used, if a model contains an un‐
18988       known cpu definition name, unknown properties or properties with  wrong
18989       types.
18990
18991   Note
18992       this  command  isn't specific to s390x, but is only implemented on this
18993       architecture currently.
18994
18995   Since
18996       2.8
18997
18998   If
18999       TARGET_S390X
19000
19001   CpuModelExpansionInfo (Object)
19002       The result of a cpu model expansion.
19003
19004   Members
19005       model: CpuModelInfo
19006              the expanded CpuModelInfo.
19007
19008   Since
19009       2.8
19010
19011   If
19012       TARGET_S390X or TARGET_I386 or TARGET_ARM
19013
19014   query-cpu-model-expansion (Command)
19015       Expands a given CPU model (or a combination of CPU model  +  additional
19016       options)  to different granularities, allowing tooling to get an under‐
19017       standing what a specific CPU model looks like in QEMU under  a  certain
19018       configuration.
19019
19020       This interface can be used to query the "host" CPU model.
19021
19022       The data returned by this command may be affected by:
19023
19024       • QEMU  version:  CPU  models  may look different depending on the QEMU
19025         version.   (Except  for  CPU   models   reported   as   "static"   in
19026         query-cpu-definitions.)
19027
19028       • machine-type:  CPU  model   may  look  different depending on the ma‐
19029         chine-type.   (Except  for  CPU  models  reported  as   "static"   in
19030         query-cpu-definitions.)
19031
19032       • machine  options  (including accelerator): in some architectures, CPU
19033         models may look different depending on machine  and  accelerator  op‐
19034         tions. (Except for CPU models reported as "static" in query-cpu-defi‐
19035         nitions.)
19036
19037       • "-cpu" arguments and global properties: arguments to the -cpu  option
19038         and  global  properties  may  affect  expansion  of CPU models. Using
19039         query-cpu-model-expansion while using these is not advised.
19040
19041       Some architectures may not support all expansion types. s390x  supports
19042       "full" and "static". Arm only supports "full".
19043
19044   Arguments
19045       type: CpuModelExpansionType
19046              Not documented
19047
19048       model: CpuModelInfo
19049              Not documented
19050
19051   Returns
19052       a  CpuModelExpansionInfo.  Returns  an error if expanding CPU models is
19053       not supported, if the model cannot be expanded, if the  model  contains
19054       an unknown CPU definition name, unknown properties or properties with a
19055       wrong type. Also returns an error if an  expansion  type  is  not  sup‐
19056       ported.
19057
19058   Since
19059       2.8
19060
19061   If
19062       TARGET_S390X or TARGET_I386 or TARGET_ARM
19063
19064   CpuDefinitionInfo (Object)
19065       Virtual CPU definition.
19066
19067   Members
19068       name: string
19069              the name of the CPU definition
19070
19071       migration-safe: boolean (optional)
19072              whether  a  CPU  definition  can be safely used for migration in
19073              combination with a QEMU compatibility machine when migrating be‐
19074              tween  different  QEMU versions and between hosts with different
19075              sets of (hardware or software) capabilities.  If  not  provided,
19076              information  is  not available and callers should not assume the
19077              CPU definition to be migration-safe. (since 2.8)
19078
19079       static: boolean
19080              whether a CPU definition is static and will not change depending
19081              on  QEMU  version, machine type, machine options and accelerator
19082              options.  A static model is always migration-safe. (since 2.8)
19083
19084       unavailable-features: array of string (optional)
19085              List of properties that prevent the CPU model  from  running  in
19086              the current host. (since 2.8)
19087
19088       typename: string
19089              Type  name  that  can be used as argument to device-list-proper‐
19090              ties,  to  introspect  properties  configurable  using  -cpu  or
19091              -global.  (since 2.9)
19092
19093       alias-of: string (optional)
19094              Name of CPU model this model is an alias for.  The target of the
19095              CPU model alias may change depending on the machine type.   Man‐
19096              agement  software  is supposed to translate CPU model aliases in
19097              the VM configuration, because  aliases  may  stop  being  migra‐
19098              tion-safe in the future (since 4.1)
19099
19100       deprecated: boolean
19101              If  true,  this CPU model is deprecated and may be removed in in
19102              some future version of QEMU according to  the  QEMU  deprecation
19103              policy. (since 5.2)
19104       unavailable-features is a list of QOM property names that represent CPU
19105       model attributes that prevent the CPU from running.  If the  QOM  prop‐
19106       erty  is  read-only,  that  means  there's no known way to make the CPU
19107       model run in the current host. Implementations that choose not to  pro‐
19108       vide  specific  information  return  the  property name "type".  If the
19109       property is read-write, it means that it MAY be possible to run the CPU
19110       model in the current host if that property is changed. Management soft‐
19111       ware can use it as hints to suggest or choose an  alternative  for  the
19112       user,  or just to generate meaningful error messages explaining why the
19113       CPU model can't be used.  If unavailable-features is an empty list, the
19114       CPU  model is runnable using the current host and machine-type.  If un‐
19115       available-features is not present, runnability information for the  CPU
19116       is not available.
19117
19118   Since
19119       1.2
19120
19121   If
19122       TARGET_PPC or TARGET_ARM or TARGET_I386 or TARGET_S390X or TARGET_MIPS
19123
19124   query-cpu-definitions (Command)
19125       Return a list of supported virtual CPU definitions
19126
19127   Returns
19128       a list of CpuDefInfo
19129
19130   Since
19131       1.2
19132
19133   If
19134       TARGET_PPC or TARGET_ARM or TARGET_I386 or TARGET_S390X or TARGET_MIPS
19135

RECORD/REPLAY

19137   ReplayMode (Enum)
19138       Mode of the replay subsystem.
19139
19140   Values
19141       none   normal execution mode. Replay or record are not enabled.
19142
19143       record record  mode. All non-deterministic data is written into the re‐
19144              play log.
19145
19146       play   replay mode. Non-deterministic data required for  system  execu‐
19147              tion is read from the log.
19148
19149   Since
19150       2.5
19151
19152   ReplayInfo (Object)
19153       Record/replay information.
19154
19155   Members
19156       mode: ReplayMode
19157              current mode.
19158
19159       filename: string (optional)
19160              name  of  the  record/replay  log  file.   It is present only in
19161              record or replay modes, when the log is recorded or replayed.
19162
19163       icount: int
19164              current number of executed instructions.
19165
19166   Since
19167       5.2
19168
19169   query-replay (Command)
19170       Retrieve the record/replay information.  It includes  current  instruc‐
19171       tion count which may be used for replay-break and replay-seek commands.
19172
19173   Returns
19174       record/replay information.
19175
19176   Since
19177       5.2
19178
19179   Example
19180          -> { "execute": "query-replay" }
19181          <- { "return": { "mode": "play", "filename": "log.rr", "icount": 220414 } }
19182
19183   replay-break (Command)
19184       Set  replay  breakpoint  at  instruction count icount.  Execution stops
19185       when the specified instruction is reached.  There can be  at  most  one
19186       breakpoint.  When  breakpoint  is  set,  any prior one is removed.  The
19187       breakpoint may be set only in replay mode and  only  "in  the  future",
19188       i.e.  at  instruction counts greater than the current one.  The current
19189       instruction count can be observed with query-replay.
19190
19191   Arguments
19192       icount: int
19193              instruction count to stop at
19194
19195   Since
19196       5.2
19197
19198   Example
19199          -> { "execute": "replay-break", "data": { "icount": 220414 } }
19200
19201   replay-delete-break (Command)
19202       Remove replay breakpoint which was set with replay-break.  The  command
19203       is ignored when there are no replay breakpoints.
19204
19205   Since
19206       5.2
19207
19208   Example
19209          -> { "execute": "replay-delete-break" }
19210
19211   replay-seek (Command)
19212       Automatically  proceed  to the instruction count icount, when replaying
19213       the execution. The command automatically loads nearest snapshot and re‐
19214       plays  the execution to find the desired instruction.  When there is no
19215       preceding snapshot or the execution is not replayed, then  the  command
19216       fails.  icount for the reference may be obtained with query-replay com‐
19217       mand.
19218
19219   Arguments
19220       icount: int
19221              target instruction count
19222
19223   Since
19224       5.2
19225
19226   Example
19227          -> { "execute": "replay-seek", "data": { "icount": 220414 } }
19228

YANK FEATURE

19230   YankInstanceType (Enum)
19231       An enumeration of yank instance types. See YankInstance for more infor‐
19232       mation.
19233
19234   Values
19235       block-node
19236              Not documented
19237
19238       chardev
19239              Not documented
19240
19241       migration
19242              Not documented
19243
19244   Since
19245       6.0
19246
19247   YankInstanceBlockNode (Object)
19248       Specifies which block graph node to yank. See YankInstance for more in‐
19249       formation.
19250
19251   Members
19252       node-name: string
19253              the name of the block graph node
19254
19255   Since
19256       6.0
19257
19258   YankInstanceChardev (Object)
19259       Specifies which character device to yank. See YankInstance for more in‐
19260       formation.
19261
19262   Members
19263       id: string
19264              the chardev's ID
19265
19266   Since
19267       6.0
19268
19269   YankInstance (Object)
19270       A yank instance can be yanked with the yank qmp command to recover from
19271       a hanging QEMU.
19272
19273       Currently implemented yank instances:
19274
19275              • nbd block device: Yanking it will shut down the connection  to
19276                the nbd server without attempting to reconnect.
19277
19278              • socket  chardev:  Yanking  it  will  shut  down  the connected
19279                socket.
19280
19281              • migration: Yanking it will shut  down  all  migration  connec‐
19282                tions. Unlike migrate_cancel, it will not notify the migration
19283                process, so migration will go into failed  state,  instead  of
19284                cancelled state. yank should be used to recover from hangs.
19285
19286   Members
19287       type: YankInstanceType
19288              Not documented
19289
19290       The members of YankInstanceBlockNode when type is "block-node"
19291
19292       The members of YankInstanceChardev when type is "chardev"
19293
19294   Since
19295       6.0
19296
19297   yank (Command)
19298       Try  to  recover  from hanging QEMU by yanking the specified instances.
19299       See YankInstance for more information.
19300
19301       Takes a list of YankInstance as argument.
19302
19303   Arguments
19304       instances: array of YankInstance
19305              Not documented
19306
19307   Returns
19308       • Nothing on success
19309
19310DeviceNotFound error, if any of the YankInstances doesn't exist
19311
19312   Example
19313          -> { "execute": "yank",
19314               "arguments": {
19315                   "instances": [
19316                        { "type": "block-node",
19317                          "node-name": "nbd0" }
19318                   ] } }
19319          <- { "return": {} }
19320
19321   Since
19322       6.0
19323
19324   query-yank (Command)
19325       Query yank instances. See YankInstance for more information.
19326
19327   Returns
19328       list of YankInstance
19329
19330   Example
19331          -> { "execute": "query-yank" }
19332          <- { "return": [
19333                   { "type": "block-node",
19334                     "node-name": "nbd0" }
19335               ] }
19336
19337   Since
19338       6.0
19339

MISCELLANEA

19341   add_client (Command)
19342       Allow client connections for VNC, Spice and socket based character  de‐
19343       vices to be passed in to QEMU via SCM_RIGHTS.
19344
19345   Arguments
19346       protocol: string
19347              protocol  name.  Valid names are "vnc", "spice" or the name of a
19348              character device (eg. from -chardev id=XXXX)
19349
19350       fdname: string
19351              file descriptor name previously passed via 'getfd' command
19352
19353       skipauth: boolean (optional)
19354              whether to  skip  authentication.  Only  applies  to  "vnc"  and
19355              "spice" protocols
19356
19357       tls: boolean (optional)
19358              whether to perform TLS. Only applies to the "spice" protocol
19359
19360   Returns
19361       nothing on success.
19362
19363   Since
19364       0.14
19365
19366   Example
19367          -> { "execute": "add_client", "arguments": { "protocol": "vnc",
19368                                                       "fdname": "myclient" } }
19369          <- { "return": {} }
19370
19371   NameInfo (Object)
19372       Guest name information.
19373
19374   Members
19375       name: string (optional)
19376              The name of the guest
19377
19378   Since
19379       0.14
19380
19381   query-name (Command)
19382       Return the name information of a guest.
19383
19384   Returns
19385       NameInfo of the guest
19386
19387   Since
19388       0.14
19389
19390   Example
19391          -> { "execute": "query-name" }
19392          <- { "return": { "name": "qemu-name" } }
19393
19394   IOThreadInfo (Object)
19395       Information about an iothread
19396
19397   Members
19398       id: string
19399              the identifier of the iothread
19400
19401       thread-id: int
19402              ID of the underlying host thread
19403
19404       poll-max-ns: int
19405              maximum  polling  time in ns, 0 means polling is disabled (since
19406              2.9)
19407
19408       poll-grow: int
19409              how many ns will be added to polling time, 0 means that it's not
19410              configured (since 2.9)
19411
19412       poll-shrink: int
19413              how many ns will be removed from polling time, 0 means that it's
19414              not configured (since 2.9)
19415
19416       aio-max-batch: int
19417              maximum number of requests in a batch  for  the  AIO  engine,  0
19418              means that the engine will use its default (since 6.1)
19419
19420   Since
19421       2.0
19422
19423   query-iothreads (Command)
19424       Returns a list of information about each iothread.
19425
19426   Note
19427       this list excludes the QEMU main loop thread, which is not declared us‐
19428       ing the -object iothread command-line option.  It is  always  the  main
19429       thread of the process.
19430
19431   Returns
19432       a list of IOThreadInfo for each iothread
19433
19434   Since
19435       2.0
19436
19437   Example
19438          -> { "execute": "query-iothreads" }
19439          <- { "return": [
19440                   {
19441                      "id":"iothread0",
19442                      "thread-id":3134
19443                   },
19444                   {
19445                      "id":"iothread1",
19446                      "thread-id":3135
19447                   }
19448                ]
19449             }
19450
19451   stop (Command)
19452       Stop all guest VCPU execution.
19453
19454   Since
19455       0.14
19456
19457   Notes
19458       This  function will succeed even if the guest is already in the stopped
19459       state.  In "inmigrate" state, it will ensure  that  the  guest  remains
19460       paused  once  migration finishes, as if the -S option was passed on the
19461       command line.
19462
19463   Example
19464          -> { "execute": "stop" }
19465          <- { "return": {} }
19466
19467   cont (Command)
19468       Resume guest VCPU execution.
19469
19470   Since
19471       0.14
19472
19473   Returns
19474       If successful, nothing
19475
19476   Notes
19477       This command will succeed if the guest is currently running.   It  will
19478       also  succeed  if  the guest is in the "inmigrate" state; in this case,
19479       the effect of the command is to make sure the guest starts once  migra‐
19480       tion  finishes, removing the effect of the -S command line option if it
19481       was passed.
19482
19483   Example
19484          -> { "execute": "cont" }
19485          <- { "return": {} }
19486
19487   x-exit-preconfig (Command)
19488       Exit from "preconfig" state
19489
19490       This command makes QEMU exit the preconfig state and  proceed  with  VM
19491       initialization  using  configuration  data provided on the command line
19492       and via the QMP monitor during the preconfig state. The command is only
19493       available during the preconfig state (i.e. when the --preconfig command
19494       line option was in use).
19495
19496   Features
19497       unstable
19498              This command is experimental.
19499       Since 3.0
19500
19501   Returns
19502       nothing
19503
19504   Example
19505          -> { "execute": "x-exit-preconfig" }
19506          <- { "return": {} }
19507
19508   human-monitor-command (Command)
19509       Execute a command on the human monitor and return the output.
19510
19511   Arguments
19512       command-line: string
19513              the command to execute in the human monitor
19514
19515       cpu-index: int (optional)
19516              The CPU to use for commands that require an implicit CPU
19517
19518   Features
19519       savevm-monitor-nodes
19520              If present, HMP  command  savevm  only  snapshots  monitor-owned
19521              nodes  if they have no parents.  This allows the use of 'savevm'
19522              with -blockdev. (since 4.2)
19523
19524   Returns
19525       the output of the command as a string
19526
19527   Since
19528       0.14
19529
19530   Notes
19531       This command only exists as a stop-gap.  Its use is highly discouraged.
19532       The  semantics of this command are not guaranteed: this means that com‐
19533       mand names, arguments and responses can change or  be  removed  at  ANY
19534       time.   Applications that rely on long term stability guarantees should
19535       NOT use this command.
19536
19537       Known limitations:
19538
19539       • This command is stateless, this means that commands  that  depend  on
19540         state information (such as getfd) might not work
19541
19542       • Commands that prompt the user for data don't currently work
19543
19544   Example
19545          -> { "execute": "human-monitor-command",
19546               "arguments": { "command-line": "info kvm" } }
19547          <- { "return": "kvm support: enabled\r\n" }
19548
19549   getfd (Command)
19550       Receive a file descriptor via SCM rights and assign it a name
19551
19552   Arguments
19553       fdname: string
19554              file descriptor name
19555
19556   Returns
19557       Nothing on success
19558
19559   Since
19560       0.14
19561
19562   Notes
19563       If  fdname  already  exists, the file descriptor assigned to it will be
19564       closed and replaced by the received file descriptor.
19565
19566       The 'closefd' command can be used to explicitly close the file descrip‐
19567       tor when it is no longer needed.
19568
19569   Example
19570          -> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
19571          <- { "return": {} }
19572
19573   closefd (Command)
19574       Close a file descriptor previously passed via SCM rights
19575
19576   Arguments
19577       fdname: string
19578              file descriptor name
19579
19580   Returns
19581       Nothing on success
19582
19583   Since
19584       0.14
19585
19586   Example
19587          -> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
19588          <- { "return": {} }
19589
19590   AddfdInfo (Object)
19591       Information about a file descriptor that was added to an fd set.
19592
19593   Members
19594       fdset-id: int
19595              The ID of the fd set that fd was added to.
19596
19597       fd: int
19598              The  file  descriptor that was received via SCM rights and added
19599              to the fd set.
19600
19601   Since
19602       1.2
19603
19604   add-fd (Command)
19605       Add a file descriptor, that was passed via SCM rights, to an fd set.
19606
19607   Arguments
19608       fdset-id: int (optional)
19609              The ID of the fd set to add the file descriptor to.
19610
19611       opaque: string (optional)
19612              A free-form string that can be used to describe the fd.
19613
19614   Returns
19615AddfdInfo on success
19616
19617       • If file descriptor was not received, FdNotSupplied
19618
19619       • If fdset-id is a negative value, InvalidParameterValue
19620
19621   Notes
19622       The list of fd sets is shared by all monitor connections.
19623
19624       If fdset-id is not specified, a new fd set will be created.
19625
19626   Since
19627       1.2
19628
19629   Example
19630          -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } }
19631          <- { "return": { "fdset-id": 1, "fd": 3 } }
19632
19633   remove-fd (Command)
19634       Remove a file descriptor from an fd set.
19635
19636   Arguments
19637       fdset-id: int
19638              The ID of the fd set that the file descriptor belongs to.
19639
19640       fd: int (optional)
19641              The file descriptor that is to be removed.
19642
19643   Returns
19644       • Nothing on success
19645
19646       • If fdset-id or fd is not found, FdNotFound
19647
19648   Since
19649       1.2
19650
19651   Notes
19652       The list of fd sets is shared by all monitor connections.
19653
19654       If fd is not specified, all file descriptors in fdset-id  will  be  re‐
19655       moved.
19656
19657   Example
19658          -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } }
19659          <- { "return": {} }
19660
19661   FdsetFdInfo (Object)
19662       Information about a file descriptor that belongs to an fd set.
19663
19664   Members
19665       fd: int
19666              The file descriptor value.
19667
19668       opaque: string (optional)
19669              A free-form string that can be used to describe the fd.
19670
19671   Since
19672       1.2
19673
19674   FdsetInfo (Object)
19675       Information about an fd set.
19676
19677   Members
19678       fdset-id: int
19679              The ID of the fd set.
19680
19681       fds: array of FdsetFdInfo
19682              A list of file descriptors that belong to this fd set.
19683
19684   Since
19685       1.2
19686
19687   query-fdsets (Command)
19688       Return information describing all fd sets.
19689
19690   Returns
19691       A list of FdsetInfo
19692
19693   Since
19694       1.2
19695
19696   Note
19697       The list of fd sets is shared by all monitor connections.
19698
19699   Example
19700          -> { "execute": "query-fdsets" }
19701          <- { "return": [
19702                 {
19703                   "fds": [
19704                     {
19705                       "fd": 30,
19706                       "opaque": "rdonly:/path/to/file"
19707                     },
19708                     {
19709                       "fd": 24,
19710                       "opaque": "rdwr:/path/to/file"
19711                     }
19712                   ],
19713                   "fdset-id": 1
19714                 },
19715                 {
19716                   "fds": [
19717                     {
19718                       "fd": 28
19719                     },
19720                     {
19721                       "fd": 29
19722                     }
19723                   ],
19724                   "fdset-id": 0
19725                 }
19726               ]
19727             }
19728
19729   CommandLineParameterType (Enum)
19730       Possible types for an option parameter.
19731
19732   Values
19733       string accepts a character string
19734
19735       boolean
19736              accepts "on" or "off"
19737
19738       number accepts a number
19739
19740       size   accepts  a number followed by an optional suffix (K)ilo, (M)ega,
19741              (G)iga, (T)era
19742
19743   Since
19744       1.5
19745
19746   CommandLineParameterInfo (Object)
19747       Details about a single parameter of a command line option.
19748
19749   Members
19750       name: string
19751              parameter name
19752
19753       type: CommandLineParameterType
19754              parameter CommandLineParameterType
19755
19756       help: string (optional)
19757              human readable text string, not suitable for parsing.
19758
19759       default: string (optional)
19760              default value string (since 2.1)
19761
19762   Since
19763       1.5
19764
19765   CommandLineOptionInfo (Object)
19766       Details about a command line option, including its  list  of  parameter
19767       details
19768
19769   Members
19770       option: string
19771              option name
19772
19773       parameters: array of CommandLineParameterInfo
19774              an array of CommandLineParameterInfo
19775
19776   Since
19777       1.5
19778
19779   query-command-line-options (Command)
19780       Query command line option schema.
19781
19782   Arguments
19783       option: string (optional)
19784              option name
19785
19786   Returns
19787       list  of  CommandLineOptionInfo  for  all options (or for the given op‐
19788       tion).  Returns an error if the given option doesn't exist.
19789
19790   Since
19791       1.5
19792
19793   Example
19794          -> { "execute": "query-command-line-options",
19795               "arguments": { "option": "option-rom" } }
19796          <- { "return": [
19797                  {
19798                      "parameters": [
19799                          {
19800                              "name": "romfile",
19801                              "type": "string"
19802                          },
19803                          {
19804                              "name": "bootindex",
19805                              "type": "number"
19806                          }
19807                      ],
19808                      "option": "option-rom"
19809                  }
19810               ]
19811             }
19812
19813   RTC_CHANGE (Event)
19814       Emitted when the guest changes the RTC time.
19815
19816   Arguments
19817       offset: int
19818              offset between base RTC clock (as specified by -rtc  base),  and
19819              new RTC clock value
19820
19821   Note
19822       This event is rate-limited.
19823
19824   Since
19825       0.13
19826
19827   Example
19828          <-   { "event": "RTC_CHANGE",
19829                 "data": { "offset": 78 },
19830                 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
19831
19832   If
19833       TARGET_ALPHA or TARGET_ARM or TARGET_HPPA or TARGET_I386 or TARGET_MIPS
19834       or TARGET_MIPS64 or TARGET_PPC or TARGET_PPC64 or TARGET_S390X or  TAR‐
19835       GET_SH4 or TARGET_SPARC
19836
19837   rtc-reset-reinjection (Command)
19838       This  command will reset the RTC interrupt reinjection backlog.  Can be
19839       used if another mechanism to synchronize guest time is in  effect,  for
19840       example QEMU guest agent's guest-set-time command.
19841
19842   Since
19843       2.1
19844
19845   Example
19846          -> { "execute": "rtc-reset-reinjection" }
19847          <- { "return": {} }
19848
19849   If
19850       TARGET_I386
19851
19852   SevState (Enum)
19853       An enumeration of SEV state information used during query-sev.
19854
19855   Values
19856       uninit The guest is uninitialized.
19857
19858       launch-update
19859              The guest is currently being launched; plaintext data and regis‐
19860              ter state is being imported.
19861
19862       launch-secret
19863              The guest is currently being launched; ciphertext data is  being
19864              imported.
19865
19866       running
19867              The guest is fully launched or migrated in.
19868
19869       send-update
19870              The guest is currently being migrated out to another machine.
19871
19872       receive-update
19873              The guest is currently being migrated from another machine.
19874
19875   Since
19876       2.12
19877
19878   If
19879       TARGET_I386
19880
19881   SevInfo (Object)
19882       Information about Secure Encrypted Virtualization (SEV) support
19883
19884   Members
19885       enabled: boolean
19886              true if SEV is active
19887
19888       api-major: int
19889              SEV API major version
19890
19891       api-minor: int
19892              SEV API minor version
19893
19894       build-id: int
19895              SEV FW build id
19896
19897       policy: int
19898              SEV policy value
19899
19900       state: SevState
19901              SEV guest state
19902
19903       handle: int
19904              SEV firmware handle
19905
19906   Since
19907       2.12
19908
19909   If
19910       TARGET_I386
19911
19912   query-sev (Command)
19913       Returns information about SEV
19914
19915   Returns
19916       SevInfo
19917
19918   Since
19919       2.12
19920
19921   Example
19922          -> { "execute": "query-sev" }
19923          <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0,
19924                           "build-id" : 0, "policy" : 0, "state" : "running",
19925                           "handle" : 1 } }
19926
19927   If
19928       TARGET_I386
19929
19930   SevLaunchMeasureInfo (Object)
19931       SEV Guest Launch measurement information
19932
19933   Members
19934       data: string
19935              the measurement value encoded in base64
19936
19937   Since
19938       2.12
19939
19940   If
19941       TARGET_I386
19942
19943   query-sev-launch-measure (Command)
19944       Query the SEV guest launch information.
19945
19946   Returns
19947       The SevLaunchMeasureInfo for the guest
19948
19949   Since
19950       2.12
19951
19952   Example
19953          -> { "execute": "query-sev-launch-measure" }
19954          <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } }
19955
19956   If
19957       TARGET_I386
19958
19959   SevCapability (Object)
19960       The  struct  describes capability for a Secure Encrypted Virtualization
19961       feature.
19962
19963   Members
19964       pdh: string
19965              Platform Diffie-Hellman key (base64 encoded)
19966
19967       cert-chain: string
19968              PDH certificate chain (base64 encoded)
19969
19970       cbitpos: int
19971              C-bit location in page table entry
19972
19973       reduced-phys-bits: int
19974              Number of physical Address bit reduction when SEV is enabled
19975
19976   Since
19977       2.12
19978
19979   If
19980       TARGET_I386
19981
19982   query-sev-capabilities (Command)
19983       This command is used to get the SEV capabilities, and is  supported  on
19984       AMD X86 platforms only.
19985
19986   Returns
19987       SevCapability objects.
19988
19989   Since
19990       2.12
19991
19992   Example
19993          -> { "execute": "query-sev-capabilities" }
19994          <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE",
19995                           "cbitpos": 47, "reduced-phys-bits": 5}}
19996
19997   If
19998       TARGET_I386
19999
20000   sev-inject-launch-secret (Command)
20001       This command injects a secret blob into memory of SEV guest.
20002
20003   Arguments
20004       packet-header: string
20005              the launch secret packet header encoded in base64
20006
20007       secret: string
20008              the launch secret data to be injected encoded in base64
20009
20010       gpa: int (optional)
20011              the guest physical address where secret will be injected.
20012
20013   Since
20014       6.0
20015
20016   If
20017       TARGET_I386
20018
20019   SevAttestationReport (Object)
20020       The struct describes attestation report for a Secure Encrypted Virtual‐
20021       ization feature.
20022
20023   Members
20024       data: string
20025              guest attestation report (base64 encoded)
20026
20027   Since
20028       6.1
20029
20030   If
20031       TARGET_I386
20032
20033   query-sev-attestation-report (Command)
20034       This command is used to get the SEV attestation  report,  and  is  sup‐
20035       ported on AMD X86 platforms only.
20036
20037   Arguments
20038       mnonce: string
20039              a  random  16 bytes value encoded in base64 (it will be included
20040              in report)
20041
20042   Returns
20043       SevAttestationReport objects.
20044
20045   Since
20046       6.1
20047
20048   Example
20049          -> { "execute" : "query-sev-attestation-report",
20050                           "arguments": { "mnonce": "aaaaaaa" } }
20051          <- { "return" : { "data": "aaaaaaaabbbddddd"} }
20052
20053   If
20054       TARGET_I386
20055
20056   dump-skeys (Command)
20057       Dump guest's storage keys
20058
20059   Arguments
20060       filename: string
20061              the path to the file to dump to
20062       This command is only supported on s390 architecture.
20063
20064   Since
20065       2.5
20066
20067   Example
20068          -> { "execute": "dump-skeys",
20069               "arguments": { "filename": "/tmp/skeys" } }
20070          <- { "return": {} }
20071
20072   If
20073       TARGET_S390X
20074
20075   GICCapability (Object)
20076       The struct describes capability for a specific GIC  (Generic  Interrupt
20077       Controller)  version. These bits are not only decided by QEMU/KVM soft‐
20078       ware version, but also decided by the hardware that the program is run‐
20079       ning upon.
20080
20081   Members
20082       version: int
20083              version of GIC to be described. Currently, only 2 and 3 are sup‐
20084              ported.
20085
20086       emulated: boolean
20087              whether current QEMU/hardware supports emulated  GIC  device  in
20088              user space.
20089
20090       kernel: boolean
20091              whether  current QEMU/hardware supports hardware accelerated GIC
20092              device in kernel.
20093
20094   Since
20095       2.6
20096
20097   If
20098       TARGET_ARM
20099
20100   query-gic-capabilities (Command)
20101       This command is ARM-only. It will return a list  of  GICCapability  ob‐
20102       jects that describe its capability bits.
20103
20104   Returns
20105       a list of GICCapability objects.
20106
20107   Since
20108       2.6
20109
20110   Example
20111          -> { "execute": "query-gic-capabilities" }
20112          <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
20113                          { "version": 3, "emulated": false, "kernel": true } ] }
20114
20115   If
20116       TARGET_ARM
20117
20118   SGXInfo (Object)
20119       Information about intel Safe Guard eXtension (SGX) support
20120
20121   Members
20122       sgx: boolean
20123              true if SGX is supported
20124
20125       sgx1: boolean
20126              true if SGX1 is supported
20127
20128       sgx2: boolean
20129              true if SGX2 is supported
20130
20131       flc: boolean
20132              true if FLC is supported
20133
20134       section-size: int
20135              The EPC section size for guest
20136
20137   Since
20138       6.2
20139
20140   If
20141       TARGET_I386
20142
20143   query-sgx (Command)
20144       Returns information about SGX
20145
20146   Returns
20147       SGXInfo
20148
20149   Since
20150       6.2
20151
20152   Example
20153          -> { "execute": "query-sgx" }
20154          <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true,
20155                           "flc": true, "section-size" : 0 } }
20156
20157   If
20158       TARGET_I386
20159
20160   query-sgx-capabilities (Command)
20161       Returns information from host SGX capabilities
20162
20163   Returns
20164       SGXInfo
20165
20166   Since
20167       6.2
20168
20169   Example
20170          -> { "execute": "query-sgx-capabilities" }
20171          <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true,
20172                           "flc": true, "section-size" : 0 } }
20173
20174   If
20175       TARGET_I386
20176

AUDIO

20178   AudiodevPerDirectionOptions (Object)
20179       General  audio  backend  options  that  are  used for both playback and
20180       recording.
20181
20182   Members
20183       mixing-engine: boolean (optional)
20184              use QEMU's mixing engine to mix all streams inside QEMU and con‐
20185              vert  audio  formats when not supported by the backend. When set
20186              to off, fixed-settings must be also off (default on, since 4.2)
20187
20188       fixed-settings: boolean (optional)
20189              use fixed settings for host input/output. When  off,  frequency,
20190              channels and format must not be specified (default true)
20191
20192       frequency: int (optional)
20193              frequency to use when using fixed settings (default 44100)
20194
20195       channels: int (optional)
20196              number of channels when using fixed settings (default 2)
20197
20198       voices: int (optional)
20199              number of voices to use (default 1)
20200
20201       format: AudioFormat (optional)
20202              sample format to use when using fixed settings (default s16)
20203
20204       buffer-length: int (optional)
20205              the buffer length in microseconds
20206
20207   Since
20208       4.0
20209
20210   AudiodevGenericOptions (Object)
20211       Generic driver-specific options.
20212
20213   Members
20214       in: AudiodevPerDirectionOptions (optional)
20215              options of the capture stream
20216
20217       out: AudiodevPerDirectionOptions (optional)
20218              options of the playback stream
20219
20220   Since
20221       4.0
20222
20223   AudiodevAlsaPerDirectionOptions (Object)
20224       Options of the ALSA backend that are used for both playback and record‐
20225       ing.
20226
20227   Members
20228       dev: string (optional)
20229              the name of the ALSA device to use (default 'default')
20230
20231       period-length: int (optional)
20232              the period length in microseconds
20233
20234       try-poll: boolean (optional)
20235              attempt to use poll mode, falling back to non-polling access  on
20236              failure (default true)
20237
20238       The members of AudiodevPerDirectionOptions
20239
20240   Since
20241       4.0
20242
20243   AudiodevAlsaOptions (Object)
20244       Options of the ALSA audio backend.
20245
20246   Members
20247       in: AudiodevAlsaPerDirectionOptions (optional)
20248              options of the capture stream
20249
20250       out: AudiodevAlsaPerDirectionOptions (optional)
20251              options of the playback stream
20252
20253       threshold: int (optional)
20254              set the threshold (in microseconds) when playback starts
20255
20256   Since
20257       4.0
20258
20259   AudiodevCoreaudioPerDirectionOptions (Object)
20260       Options  of  the Core Audio backend that are used for both playback and
20261       recording.
20262
20263   Members
20264       buffer-count: int (optional)
20265              number of buffers
20266
20267       The members of AudiodevPerDirectionOptions
20268
20269   Since
20270       4.0
20271
20272   AudiodevCoreaudioOptions (Object)
20273       Options of the coreaudio audio backend.
20274
20275   Members
20276       in: AudiodevCoreaudioPerDirectionOptions (optional)
20277              options of the capture stream
20278
20279       out: AudiodevCoreaudioPerDirectionOptions (optional)
20280              options of the playback stream
20281
20282   Since
20283       4.0
20284
20285   AudiodevDsoundOptions (Object)
20286       Options of the DirectSound audio backend.
20287
20288   Members
20289       in: AudiodevPerDirectionOptions (optional)
20290              options of the capture stream
20291
20292       out: AudiodevPerDirectionOptions (optional)
20293              options of the playback stream
20294
20295       latency: int (optional)
20296              add extra latency to playback in microseconds (default 10000)
20297
20298   Since
20299       4.0
20300
20301   AudiodevJackPerDirectionOptions (Object)
20302       Options of the JACK backend that are used for both playback and record‐
20303       ing.
20304
20305   Members
20306       server-name: string (optional)
20307              select  from  among several possible concurrent server instances
20308              (default: environment variable $JACK_DEFAULT_SERVER if set, else
20309              "default")
20310
20311       client-name: string (optional)
20312              the client name to use. The server will modify this name to cre‐
20313              ate a unique variant, if needed unless exact-name is  true  (de‐
20314              fault: the guest's name)
20315
20316       connect-ports: string (optional)
20317              if set, a regular expression of JACK client port name(s) to mon‐
20318              itor for and automatically connect to
20319
20320       start-server: boolean (optional)
20321              start a jack server process if one is not already  present  (de‐
20322              fault: false)
20323
20324       exact-name: boolean (optional)
20325              use the exact name requested otherwise JACK automatically gener‐
20326              ates a unique one, if needed (default: false)
20327
20328       The members of AudiodevPerDirectionOptions
20329
20330   Since
20331       5.1
20332
20333   AudiodevJackOptions (Object)
20334       Options of the JACK audio backend.
20335
20336   Members
20337       in: AudiodevJackPerDirectionOptions (optional)
20338              options of the capture stream
20339
20340       out: AudiodevJackPerDirectionOptions (optional)
20341              options of the playback stream
20342
20343   Since
20344       5.1
20345
20346   AudiodevOssPerDirectionOptions (Object)
20347       Options of the OSS backend that are used for both playback and  record‐
20348       ing.
20349
20350   Members
20351       dev: string (optional)
20352              file name of the OSS device (default '/dev/dsp')
20353
20354       buffer-count: int (optional)
20355              number of buffers
20356
20357       try-poll: boolean (optional)
20358              attempt  to use poll mode, falling back to non-polling access on
20359              failure (default true)
20360
20361       The members of AudiodevPerDirectionOptions
20362
20363   Since
20364       4.0
20365
20366   AudiodevOssOptions (Object)
20367       Options of the OSS audio backend.
20368
20369   Members
20370       in: AudiodevOssPerDirectionOptions (optional)
20371              options of the capture stream
20372
20373       out: AudiodevOssPerDirectionOptions (optional)
20374              options of the playback stream
20375
20376       try-mmap: boolean (optional)
20377              try  using  memory-mapped  access,  falling  back  to   non-mem‐
20378              ory-mapped access on failure (default true)
20379
20380       exclusive: boolean (optional)
20381              open device in exclusive mode (vmix won't work) (default false)
20382
20383       dsp-policy: int (optional)
20384              set  the  timing  policy  of the device (between 0 and 10, where
20385              smaller number means smaller latency but higher CPU usage) or -1
20386              to use fragment mode (option ignored on some platforms) (default
20387              5)
20388
20389   Since
20390       4.0
20391
20392   AudiodevPaPerDirectionOptions (Object)
20393       Options of the Pulseaudio backend that are used for both  playback  and
20394       recording.
20395
20396   Members
20397       name: string (optional)
20398              name of the sink/source to use
20399
20400       stream-name: string (optional)
20401              name  of  the PulseAudio stream created by qemu.  Can be used to
20402              identify the stream  in  PulseAudio  when  you  create  multiple
20403              PulseAudio  devices or run multiple qemu instances (default: au‐
20404              diodev's id, since 4.2)
20405
20406       latency: int (optional)
20407              latency you want PulseAudio to achieve in microseconds  (default
20408              15000)
20409
20410       The members of AudiodevPerDirectionOptions
20411
20412   Since
20413       4.0
20414
20415   AudiodevPaOptions (Object)
20416       Options of the PulseAudio audio backend.
20417
20418   Members
20419       in: AudiodevPaPerDirectionOptions (optional)
20420              options of the capture stream
20421
20422       out: AudiodevPaPerDirectionOptions (optional)
20423              options of the playback stream
20424
20425       server: string (optional)
20426              PulseAudio server address (default: let PulseAudio choose)
20427
20428   Since
20429       4.0
20430
20431   AudiodevSdlPerDirectionOptions (Object)
20432       Options  of  the  SDL audio backend that are used for both playback and
20433       recording.
20434
20435   Members
20436       buffer-count: int (optional)
20437              number of buffers (default 4)
20438
20439       The members of AudiodevPerDirectionOptions
20440
20441   Since
20442       6.0
20443
20444   AudiodevSdlOptions (Object)
20445       Options of the SDL audio backend.
20446
20447   Members
20448       in: AudiodevSdlPerDirectionOptions (optional)
20449              options of the recording stream
20450
20451       out: AudiodevSdlPerDirectionOptions (optional)
20452              options of the playback stream
20453
20454   Since
20455       6.0
20456
20457   AudiodevWavOptions (Object)
20458       Options of the wav audio backend.
20459
20460   Members
20461       in: AudiodevPerDirectionOptions (optional)
20462              options of the capture stream
20463
20464       out: AudiodevPerDirectionOptions (optional)
20465              options of the playback stream
20466
20467       path: string (optional)
20468              name of the wav file to record (default 'qemu.wav')
20469
20470   Since
20471       4.0
20472
20473   AudioFormat (Enum)
20474       An enumeration of possible audio formats.
20475
20476   Values
20477       u8     unsigned 8 bit integer
20478
20479       s8     signed 8 bit integer
20480
20481       u16    unsigned 16 bit integer
20482
20483       s16    signed 16 bit integer
20484
20485       u32    unsigned 32 bit integer
20486
20487       s32    signed 32 bit integer
20488
20489       f32    single precision floating-point (since 5.0)
20490
20491   Since
20492       4.0
20493
20494   AudiodevDriver (Enum)
20495       An enumeration of possible audio backend drivers.
20496
20497   Values
20498       jack   JACK audio backend (since 5.1)
20499
20500       none   Not documented
20501
20502       alsa   Not documented
20503
20504       coreaudio
20505              Not documented
20506
20507       dsound Not documented
20508
20509       oss    Not documented
20510
20511       pa     Not documented
20512
20513       sdl    Not documented
20514
20515       spice  Not documented
20516
20517       wav    Not documented
20518
20519   Since
20520       4.0
20521
20522   Audiodev (Object)
20523       Options of an audio backend.
20524
20525   Members
20526       id: string
20527              identifier of the backend
20528
20529       driver: AudiodevDriver
20530              the backend driver to use
20531
20532       timer-period: int (optional)
20533              timer period (in microseconds, 0: use lowest possible)
20534
20535       The members of AudiodevGenericOptions when driver is "none"
20536
20537       The members of AudiodevAlsaOptions when driver is "alsa"
20538
20539       The members of AudiodevCoreaudioOptions when driver is "coreaudio"
20540
20541       The members of AudiodevDsoundOptions when driver is "dsound"
20542
20543       The members of AudiodevJackOptions when driver is "jack"
20544
20545       The members of AudiodevOssOptions when driver is "oss"
20546
20547       The members of AudiodevPaOptions when driver is "pa"
20548
20549       The members of AudiodevSdlOptions when driver is "sdl"
20550
20551       The members of AudiodevGenericOptions when driver is "spice"
20552
20553       The members of AudiodevWavOptions when driver is "wav"
20554
20555   Since
20556       4.0
20557

ACPI

20559   AcpiTableOptions (Object)
20560       Specify an ACPI table on the command line to load.
20561
20562       At most one of file and data can be specified. The list of files speci‐
20563       fied  by  any  one of them is loaded and concatenated in order. If both
20564       are omitted, data is implied.
20565
20566       Other fields / optargs can be used to override fields  of  the  generic
20567       ACPI  table  header; refer to the ACPI specification 5.0, section 5.2.6
20568       System Description Table Header. If a header field is  not  overridden,
20569       then  the  corresponding  value  from the concatenated blob is used (in
20570       case of file), or it is filled in with a hard-coded value (in  case  of
20571       data).
20572
20573       String  fields are copied into the matching ACPI member from lowest ad‐
20574       dress upwards, and silently truncated / NUL-padded to length.
20575
20576   Members
20577       sig: string (optional)
20578              table signature / identifier (4 bytes)
20579
20580       rev: int (optional)
20581              table revision number (dependent on signature, 1 byte)
20582
20583       oem_id: string (optional)
20584              OEM identifier (6 bytes)
20585
20586       oem_table_id: string (optional)
20587              OEM table identifier (8 bytes)
20588
20589       oem_rev: int (optional)
20590              OEM-supplied revision number (4 bytes)
20591
20592       asl_compiler_id: string (optional)
20593              identifier of the utility that created the table (4 bytes)
20594
20595       asl_compiler_rev: int (optional)
20596              revision number of the utility that created the table (4 bytes)
20597
20598       file: string (optional)
20599              colon (:) separated list of pathnames to load and concatenate as
20600              table  data.  The  resultant  binary blob is expected to have an
20601              ACPI table header. At least one file is required. This field ex‐
20602              cludes data.
20603
20604       data: string (optional)
20605              colon (:) separated list of pathnames to load and concatenate as
20606              table data. The resultant binary blob must not have an ACPI  ta‐
20607              ble  header.  At least one file is required. This field excludes
20608              file.
20609
20610   Since
20611       1.5
20612
20613   ACPISlotType (Enum)
20614   Values
20615       DIMM   memory slot
20616
20617       CPU    logical CPU slot (since 2.7)
20618
20619   ACPIOSTInfo (Object)
20620       OSPM Status Indication for a device For description of possible  values
20621       of source and status fields see "_OST (OSPM Status Indication)" chapter
20622       of ACPI5.0 spec.
20623
20624   Members
20625       device: string (optional)
20626              device ID associated with slot
20627
20628       slot: string
20629              slot ID, unique per slot of a given slot-type
20630
20631       slot-type: ACPISlotType
20632              type of the slot
20633
20634       source: int
20635              an integer containing the source event
20636
20637       status: int
20638              an integer containing the status code
20639
20640   Since
20641       2.1
20642
20643   query-acpi-ospm-status (Command)
20644       Return a list of ACPIOSTInfo for devices that support status  reporting
20645       via ACPI _OST method.
20646
20647   Since
20648       2.1
20649
20650   Example
20651          -> { "execute": "query-acpi-ospm-status" }
20652          <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
20653                           { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
20654                           { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
20655                           { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
20656             ]}
20657
20658   ACPI_DEVICE_OST (Event)
20659       Emitted when guest executes ACPI _OST method.
20660
20661   Arguments
20662       info: ACPIOSTInfo
20663              OSPM Status Indication
20664
20665   Since
20666       2.1
20667
20668   Example
20669          <- { "event": "ACPI_DEVICE_OST",
20670               "data": { "device": "d1", "slot": "0",
20671                         "slot-type": "DIMM", "source": 1, "status": 0 } }
20672

PCI

20674   PciMemoryRange (Object)
20675       A PCI device memory region
20676
20677   Members
20678       base: int
20679              the starting address (guest physical)
20680
20681       limit: int
20682              the ending address (guest physical)
20683
20684   Since
20685       0.14
20686
20687   PciMemoryRegion (Object)
20688       Information about a PCI device I/O region.
20689
20690   Members
20691       bar: int
20692              the index of the Base Address Register for this region
20693
20694       type: string
20695
20696              • 'io' if the region is a PIO region
20697
20698              • 'memory' if the region is a MMIO region
20699
20700       size: int
20701              memory size
20702
20703       prefetch: boolean (optional)
20704              if type is 'memory', true if the memory is prefetchable
20705
20706       mem_type_64: boolean (optional)
20707              if type is 'memory', true if the BAR is 64-bit
20708
20709       address: int
20710              Not documented
20711
20712   Since
20713       0.14
20714
20715   PciBusInfo (Object)
20716       Information about a bus of a PCI Bridge device
20717
20718   Members
20719       number: int
20720              primary  bus interface number.  This should be the number of the
20721              bus the device resides on.
20722
20723       secondary: int
20724              secondary bus interface number.  This is the number of the  main
20725              bus for the bridge
20726
20727       subordinate: int
20728              This is the highest number bus that resides below the bridge.
20729
20730       io_range: PciMemoryRange
20731              The PIO range for all devices on this bridge
20732
20733       memory_range: PciMemoryRange
20734              The MMIO range for all devices on this bridge
20735
20736       prefetchable_range: PciMemoryRange
20737              The range of prefetchable MMIO for all devices on this bridge
20738
20739   Since
20740       2.4
20741
20742   PciBridgeInfo (Object)
20743       Information about a PCI Bridge device
20744
20745   Members
20746       bus: PciBusInfo
20747              information about the bus the device resides on
20748
20749       devices: array of PciDeviceInfo (optional)
20750              a list of PciDeviceInfo for each device on this bridge
20751
20752   Since
20753       0.14
20754
20755   PciDeviceClass (Object)
20756       Information about the Class of a PCI device
20757
20758   Members
20759       desc: string (optional)
20760              a string description of the device's class
20761
20762       class: int
20763              the class code of the device
20764
20765   Since
20766       2.4
20767
20768   PciDeviceId (Object)
20769       Information about the Id of a PCI device
20770
20771   Members
20772       device: int
20773              the PCI device id
20774
20775       vendor: int
20776              the PCI vendor id
20777
20778       subsystem: int (optional)
20779              the PCI subsystem id (since 3.1)
20780
20781       subsystem-vendor: int (optional)
20782              the PCI subsystem vendor id (since 3.1)
20783
20784   Since
20785       2.4
20786
20787   PciDeviceInfo (Object)
20788       Information about a PCI device
20789
20790   Members
20791       bus: int
20792              the bus number of the device
20793
20794       slot: int
20795              the slot the device is located in
20796
20797       function: int
20798              the function of the slot used by the device
20799
20800       class_info: PciDeviceClass
20801              the class of the device
20802
20803       id: PciDeviceId
20804              the PCI device id
20805
20806       irq: int (optional)
20807              if an IRQ is assigned to the device, the IRQ number
20808
20809       irq_pin: int
20810              the IRQ pin, zero means no IRQ (since 5.1)
20811
20812       qdev_id: string
20813              the device name of the PCI device
20814
20815       pci_bridge: PciBridgeInfo (optional)
20816              if the device is a PCI bridge, the bridge information
20817
20818       regions: array of PciMemoryRegion
20819              a list of the PCI I/O regions associated with the device
20820
20821   Notes
20822       the  contents  of  class_info.desc  are  not  stable and should only be
20823       treated as informational.
20824
20825   Since
20826       0.14
20827
20828   PciInfo (Object)
20829       Information about a PCI bus
20830
20831   Members
20832       bus: int
20833              the bus index
20834
20835       devices: array of PciDeviceInfo
20836              a list of devices on this bus
20837
20838   Since
20839       0.14
20840
20841   query-pci (Command)
20842       Return information about the PCI bus topology of the guest.
20843
20844   Returns
20845       a list of PciInfo for each PCI  bus.  Each  bus  is  represented  by  a
20846       json-object,  which  has a key with a json-array of all PCI devices at‐
20847       tached to it. Each device is represented by a json-object.
20848
20849   Since
20850       0.14
20851
20852   Example
20853          -> { "execute": "query-pci" }
20854          <- { "return": [
20855                   {
20856                      "bus": 0,
20857                      "devices": [
20858                         {
20859                            "bus": 0,
20860                            "qdev_id": "",
20861                            "slot": 0,
20862                            "class_info": {
20863                               "class": 1536,
20864                               "desc": "Host bridge"
20865                            },
20866                            "id": {
20867                               "device": 32902,
20868                               "vendor": 4663
20869                            },
20870                            "function": 0,
20871                            "regions": [
20872                            ]
20873                         },
20874                         {
20875                            "bus": 0,
20876                            "qdev_id": "",
20877                            "slot": 1,
20878                            "class_info": {
20879                               "class": 1537,
20880                               "desc": "ISA bridge"
20881                            },
20882                            "id": {
20883                               "device": 32902,
20884                               "vendor": 28672
20885                            },
20886                            "function": 0,
20887                            "regions": [
20888                            ]
20889                         },
20890                         {
20891                            "bus": 0,
20892                            "qdev_id": "",
20893                            "slot": 1,
20894                            "class_info": {
20895                               "class": 257,
20896                               "desc": "IDE controller"
20897                            },
20898                            "id": {
20899                               "device": 32902,
20900                               "vendor": 28688
20901                            },
20902                            "function": 1,
20903                            "regions": [
20904                               {
20905                                  "bar": 4,
20906                                  "size": 16,
20907                                  "address": 49152,
20908                                  "type": "io"
20909                               }
20910                            ]
20911                         },
20912                         {
20913                            "bus": 0,
20914                            "qdev_id": "",
20915                            "slot": 2,
20916                            "class_info": {
20917                               "class": 768,
20918                               "desc": "VGA controller"
20919                            },
20920                            "id": {
20921                               "device": 4115,
20922                               "vendor": 184
20923                            },
20924                            "function": 0,
20925                            "regions": [
20926                               {
20927                                  "prefetch": true,
20928                                  "mem_type_64": false,
20929                                  "bar": 0,
20930                                  "size": 33554432,
20931                                  "address": 4026531840,
20932                                  "type": "memory"
20933                               },
20934                               {
20935                                  "prefetch": false,
20936                                  "mem_type_64": false,
20937                                  "bar": 1,
20938                                  "size": 4096,
20939                                  "address": 4060086272,
20940                                  "type": "memory"
20941                               },
20942                               {
20943                                  "prefetch": false,
20944                                  "mem_type_64": false,
20945                                  "bar": 6,
20946                                  "size": 65536,
20947                                  "address": -1,
20948                                  "type": "memory"
20949                               }
20950                            ]
20951                         },
20952                         {
20953                            "bus": 0,
20954                            "qdev_id": "",
20955                            "irq": 11,
20956                            "slot": 4,
20957                            "class_info": {
20958                               "class": 1280,
20959                               "desc": "RAM controller"
20960                            },
20961                            "id": {
20962                               "device": 6900,
20963                               "vendor": 4098
20964                            },
20965                            "function": 0,
20966                            "regions": [
20967                               {
20968                                  "bar": 0,
20969                                  "size": 32,
20970                                  "address": 49280,
20971                                  "type": "io"
20972                               }
20973                            ]
20974                         }
20975                      ]
20976                   }
20977                ]
20978             }
20979
20980   Note
20981       This example has been shortened as the real response is too long.
20982
20984       2022, The QEMU Project Developers
20985
20986
20987
20988
209896.2.0                            Jun 11, 2022                  QEMU-QMP-REF(7)
Impressum