blob: d759d197486a3edf3b629fb11e9922ad92fb041a [file] [log] [blame]
Luiz Capitulinodfab4892014-06-26 09:33:47 -04001 QEMU Machine Protocol Events
2 ============================
3
4ACPI_DEVICE_OST
5---------------
6
7Emitted when guest executes ACPI _OST method.
8
9 - data: ACPIOSTInfo type as described in qapi-schema.json
10
11{ "event": "ACPI_DEVICE_OST",
12 "data": { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0 } }
13
14BALLOON_CHANGE
15--------------
16
17Emitted when the guest changes the actual BALLOON level. This
18value is equivalent to the 'actual' field return by the
19'query-balloon' command
20
21Data:
22
23- "actual": actual level of the guest memory balloon in bytes (json-number)
24
25Example:
26
27{ "event": "BALLOON_CHANGE",
28 "data": { "actual": 944766976 },
29 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
30
31BLOCK_IMAGE_CORRUPTED
32---------------------
33
34Emitted when a disk image is being marked corrupt.
35
36Data:
37
38- "device": Device name (json-string)
39- "msg": Informative message (e.g., reason for the corruption) (json-string)
40- "offset": If the corruption resulted from an image access, this is the access
41 offset into the image (json-int)
42- "size": If the corruption resulted from an image access, this is the access
43 size (json-int)
44
45Example:
46
47{ "event": "BLOCK_IMAGE_CORRUPTED",
48 "data": { "device": "ide0-hd0",
49 "msg": "Prevented active L1 table overwrite", "offset": 196608,
50 "size": 65536 },
51 "timestamp": { "seconds": 1378126126, "microseconds": 966463 } }
52
53BLOCK_IO_ERROR
54--------------
55
56Emitted when a disk I/O error occurs.
57
58Data:
59
60- "device": device name (json-string)
61- "operation": I/O operation (json-string, "read" or "write")
62- "action": action that has been taken, it's one of the following (json-string):
63 "ignore": error has been ignored
64 "report": error has been reported to the device
65 "stop": the VM is going to stop because of the error
66
67Example:
68
69{ "event": "BLOCK_IO_ERROR",
70 "data": { "device": "ide0-hd1",
71 "operation": "write",
72 "action": "stop" },
73 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
74
75Note: If action is "stop", a STOP event will eventually follow the
76BLOCK_IO_ERROR event.
77
78BLOCK_JOB_CANCELLED
79-------------------
80
81Emitted when a block job has been cancelled.
82
83Data:
84
85- "type": Job type (json-string; "stream" for image streaming
86 "commit" for block commit)
87- "device": Device name (json-string)
88- "len": Maximum progress value (json-int)
89- "offset": Current progress value (json-int)
90 On success this is equal to len.
91 On failure this is less than len.
92- "speed": Rate limit, bytes per second (json-int)
93
94Example:
95
96{ "event": "BLOCK_JOB_CANCELLED",
97 "data": { "type": "stream", "device": "virtio-disk0",
98 "len": 10737418240, "offset": 134217728,
99 "speed": 0 },
100 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
101
102BLOCK_JOB_COMPLETED
103-------------------
104
105Emitted when a block job has completed.
106
107Data:
108
109- "type": Job type (json-string; "stream" for image streaming
110 "commit" for block commit)
111- "device": Device name (json-string)
112- "len": Maximum progress value (json-int)
113- "offset": Current progress value (json-int)
114 On success this is equal to len.
115 On failure this is less than len.
116- "speed": Rate limit, bytes per second (json-int)
117- "error": Error message (json-string, optional)
118 Only present on failure. This field contains a human-readable
119 error message. There are no semantics other than that streaming
120 has failed and clients should not try to interpret the error
121 string.
122
123Example:
124
125{ "event": "BLOCK_JOB_COMPLETED",
126 "data": { "type": "stream", "device": "virtio-disk0",
127 "len": 10737418240, "offset": 10737418240,
128 "speed": 0 },
129 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
130
131BLOCK_JOB_ERROR
132---------------
133
134Emitted when a block job encounters an error.
135
136Data:
137
138- "device": device name (json-string)
139- "operation": I/O operation (json-string, "read" or "write")
140- "action": action that has been taken, it's one of the following (json-string):
141 "ignore": error has been ignored, the job may fail later
142 "report": error will be reported and the job canceled
143 "stop": error caused job to be paused
144
145Example:
146
147{ "event": "BLOCK_JOB_ERROR",
148 "data": { "device": "ide0-hd1",
149 "operation": "write",
150 "action": "stop" },
151 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
152
153BLOCK_JOB_READY
154---------------
155
156Emitted when a block job is ready to complete.
157
158Data:
159
Markus Armbrustera22d8e42014-06-27 19:24:15 +0200160- "type": Job type (json-string; "stream" for image streaming
161 "commit" for block commit)
162- "device": Device name (json-string)
163- "len": Maximum progress value (json-int)
164- "offset": Current progress value (json-int)
165 On success this is equal to len.
166 On failure this is less than len.
167- "speed": Rate limit, bytes per second (json-int)
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400168
169Example:
170
171{ "event": "BLOCK_JOB_READY",
Markus Armbrustera22d8e42014-06-27 19:24:15 +0200172 "data": { "device": "drive0", "type": "mirror", "speed": 0,
173 "len": 2097152, "offset": 2097152 }
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400174 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
175
176Note: The "ready to complete" status is always reset by a BLOCK_JOB_ERROR
177event.
178
179DEVICE_DELETED
180--------------
181
182Emitted whenever the device removal completion is acknowledged
183by the guest.
184At this point, it's safe to reuse the specified device ID.
185Device removal can be initiated by the guest or by HMP/QMP commands.
186
187Data:
188
189- "device": device name (json-string, optional)
190- "path": device path (json-string)
191
192{ "event": "DEVICE_DELETED",
193 "data": { "device": "virtio-net-pci-0",
194 "path": "/machine/peripheral/virtio-net-pci-0" },
195 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
196
197DEVICE_TRAY_MOVED
198-----------------
199
200It's emitted whenever the tray of a removable device is moved by the guest
201or by HMP/QMP commands.
202
203Data:
204
205- "device": device name (json-string)
206- "tray-open": true if the tray has been opened or false if it has been closed
207 (json-bool)
208
209{ "event": "DEVICE_TRAY_MOVED",
210 "data": { "device": "ide1-cd0",
211 "tray-open": true
212 },
213 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
214
215GUEST_PANICKED
216--------------
217
218Emitted when guest OS panic is detected.
219
220Data:
221
222- "action": Action that has been taken (json-string, currently always "pause").
223
224Example:
225
226{ "event": "GUEST_PANICKED",
227 "data": { "action": "pause" } }
228
229NIC_RX_FILTER_CHANGED
230---------------------
231
232The event is emitted once until the query command is executed,
233the first event will always be emitted.
234
235Data:
236
237- "name": net client name (json-string)
238- "path": device path (json-string)
239
240{ "event": "NIC_RX_FILTER_CHANGED",
241 "data": { "name": "vnet0",
242 "path": "/machine/peripheral/vnet0/virtio-backend" },
243 "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
244}
245
Eric Blakedb526582014-07-23 06:26:17 -0600246POWERDOWN
247---------
248
249Emitted when the Virtual Machine is powered down through the power
250control system, such as via ACPI.
251
252Data: None.
253
254Example:
255
256{ "event": "POWERDOWN",
257 "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
258
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400259QUORUM_FAILURE
260--------------
261
262Emitted by the Quorum block driver if it fails to establish a quorum.
263
264Data:
265
Benoît Canet4e855ba2014-06-30 17:05:41 +0200266- "reference": device name if defined else node name.
267- "sector-num": Number of the first sector of the failed read operation.
268- "sectors-count": Failed read operation sector count.
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400269
270Example:
271
272{ "event": "QUORUM_FAILURE",
Benoît Canet4e855ba2014-06-30 17:05:41 +0200273 "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400274 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
275
276QUORUM_REPORT_BAD
277-----------------
278
279Emitted to report a corruption of a Quorum file.
280
281Data:
282
Benoît Canet4e855ba2014-06-30 17:05:41 +0200283- "error": Error message (json-string, optional)
284 Only present on failure. This field contains a human-readable
285 error message. There are no semantics other than that the
286 block layer reported an error and clients should not try to
287 interpret the error string.
288- "node-name": The graph node name of the block driver state.
289- "sector-num": Number of the first sector of the failed read operation.
290- "sectors-count": Failed read operation sector count.
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400291
292Example:
293
294{ "event": "QUORUM_REPORT_BAD",
Benoît Canet4e855ba2014-06-30 17:05:41 +0200295 "data": { "node-name": "1.raw", "sector-num": 345435, "sectors-count": 5 },
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400296 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
297
298RESET
299-----
300
Eric Blake1454ac62014-07-23 06:26:14 -0600301Emitted when the Virtual Machine is reset.
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400302
303Data: None.
304
305Example:
306
307{ "event": "RESET",
308 "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
309
310RESUME
311------
312
313Emitted when the Virtual Machine resumes execution.
314
315Data: None.
316
317Example:
318
319{ "event": "RESUME",
320 "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
321
322RTC_CHANGE
323----------
324
325Emitted when the guest changes the RTC time.
326
327Data:
328
329- "offset": Offset between base RTC clock (as specified by -rtc base), and
330new RTC clock value (json-number)
331
332Example:
333
334{ "event": "RTC_CHANGE",
335 "data": { "offset": 78 },
336 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
337
338SHUTDOWN
339--------
340
Eric Blakedb526582014-07-23 06:26:17 -0600341Emitted when the Virtual Machine has shut down, indicating that qemu
342is about to exit.
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400343
344Data: None.
345
346Example:
347
348{ "event": "SHUTDOWN",
349 "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
350
351Note: If the command-line option "-no-shutdown" has been specified, a STOP
352event will eventually follow the SHUTDOWN event.
353
Eric Blakef8ecd942014-07-23 06:26:15 -0600354SPICE_CONNECTED
355---------------
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400356
Eric Blakef8ecd942014-07-23 06:26:15 -0600357Emitted when a SPICE client connects.
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400358
359Data:
360
361- "server": Server information (json-object)
362 - "host": IP address (json-string)
363 - "port": port number (json-string)
364 - "family": address family (json-string, "ipv4" or "ipv6")
365- "client": Client information (json-object)
366 - "host": IP address (json-string)
367 - "port": port number (json-string)
368 - "family": address family (json-string, "ipv4" or "ipv6")
369
370Example:
371
372{ "timestamp": {"seconds": 1290688046, "microseconds": 388707},
373 "event": "SPICE_CONNECTED",
374 "data": {
375 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
376 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
377}}
378
Eric Blakef8ecd942014-07-23 06:26:15 -0600379SPICE_DISCONNECTED
380------------------
381
382Emitted when a SPICE client disconnects.
383
384Data:
385
386- "server": Server information (json-object)
387 - "host": IP address (json-string)
388 - "port": port number (json-string)
389 - "family": address family (json-string, "ipv4" or "ipv6")
390- "client": Client information (json-object)
391 - "host": IP address (json-string)
392 - "port": port number (json-string)
393 - "family": address family (json-string, "ipv4" or "ipv6")
394
395Example:
396
397{ "timestamp": {"seconds": 1290688046, "microseconds": 388707},
398 "event": "SPICE_DISCONNECTED",
399 "data": {
400 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
401 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
402}}
403
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400404SPICE_INITIALIZED
405-----------------
406
407Emitted after initial handshake and authentication takes place (if any)
Eric Blake1454ac62014-07-23 06:26:14 -0600408and the SPICE channel is up and running
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400409
410Data:
411
412- "server": Server information (json-object)
413 - "host": IP address (json-string)
414 - "port": port number (json-string)
415 - "family": address family (json-string, "ipv4" or "ipv6")
416 - "auth": authentication method (json-string, optional)
417- "client": Client information (json-object)
418 - "host": IP address (json-string)
419 - "port": port number (json-string)
420 - "family": address family (json-string, "ipv4" or "ipv6")
421 - "connection-id": spice connection id. All channels with the same id
422 belong to the same spice session (json-int)
423 - "channel-type": channel type. "1" is the main control channel, filter for
424 this one if you want track spice sessions only (json-int)
425 - "channel-id": channel id. Usually "0", might be different needed when
426 multiple channels of the same type exist, such as multiple
427 display channels in a multihead setup (json-int)
428 - "tls": whevener the channel is encrypted (json-bool)
429
430Example:
431
432{ "timestamp": {"seconds": 1290688046, "microseconds": 417172},
433 "event": "SPICE_INITIALIZED",
434 "data": {"server": {"auth": "spice", "port": "5921",
435 "family": "ipv4", "host": "127.0.0.1"},
436 "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
437 "connection-id": 1804289383, "host": "127.0.0.1",
438 "channel-id": 0, "tls": true}
439}}
440
Eric Blake5e255002014-07-23 06:26:16 -0600441SPICE_MIGRATE_COMPLETED
442-----------------------
443
444Emitted when SPICE migration has completed
445
446Data: None.
447
448Example:
449
450{ "timestamp": {"seconds": 1290688046, "microseconds": 417172},
451 "event": "SPICE_MIGRATE_COMPLETED" }
452
453
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400454STOP
455----
456
457Emitted when the Virtual Machine is stopped.
458
459Data: None.
460
461Example:
462
463{ "event": "STOP",
464 "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
465
466SUSPEND
467-------
468
469Emitted when guest enters S3 state.
470
471Data: None.
472
473Example:
474
475{ "event": "SUSPEND",
476 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
477
478SUSPEND_DISK
479------------
480
481Emitted when the guest makes a request to enter S4 state.
482
483Data: None.
484
485Example:
486
487{ "event": "SUSPEND_DISK",
488 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
489
490Note: QEMU shuts down when entering S4 state.
491
492VNC_CONNECTED
493-------------
494
495Emitted when a VNC client establishes a connection.
496
497Data:
498
499- "server": Server information (json-object)
500 - "host": IP address (json-string)
501 - "service": port number (json-string)
502 - "family": address family (json-string, "ipv4" or "ipv6")
503 - "auth": authentication method (json-string, optional)
504- "client": Client information (json-object)
505 - "host": IP address (json-string)
506 - "service": port number (json-string)
507 - "family": address family (json-string, "ipv4" or "ipv6")
508
509Example:
510
511{ "event": "VNC_CONNECTED",
512 "data": {
513 "server": { "auth": "sasl", "family": "ipv4",
514 "service": "5901", "host": "0.0.0.0" },
515 "client": { "family": "ipv4", "service": "58425",
516 "host": "127.0.0.1" } },
517 "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
518
519
520Note: This event is emitted before any authentication takes place, thus
521the authentication ID is not provided.
522
523VNC_DISCONNECTED
524----------------
525
526Emitted when the connection is closed.
527
528Data:
529
530- "server": Server information (json-object)
531 - "host": IP address (json-string)
532 - "service": port number (json-string)
533 - "family": address family (json-string, "ipv4" or "ipv6")
534 - "auth": authentication method (json-string, optional)
535- "client": Client information (json-object)
536 - "host": IP address (json-string)
537 - "service": port number (json-string)
538 - "family": address family (json-string, "ipv4" or "ipv6")
539 - "x509_dname": TLS dname (json-string, optional)
540 - "sasl_username": SASL username (json-string, optional)
541
542Example:
543
544{ "event": "VNC_DISCONNECTED",
545 "data": {
546 "server": { "auth": "sasl", "family": "ipv4",
547 "service": "5901", "host": "0.0.0.0" },
548 "client": { "family": "ipv4", "service": "58425",
549 "host": "127.0.0.1", "sasl_username": "luiz" } },
550 "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
551
552VNC_INITIALIZED
553---------------
554
555Emitted after authentication takes place (if any) and the VNC session is
556made active.
557
558Data:
559
560- "server": Server information (json-object)
561 - "host": IP address (json-string)
562 - "service": port number (json-string)
563 - "family": address family (json-string, "ipv4" or "ipv6")
564 - "auth": authentication method (json-string, optional)
565- "client": Client information (json-object)
566 - "host": IP address (json-string)
567 - "service": port number (json-string)
568 - "family": address family (json-string, "ipv4" or "ipv6")
569 - "x509_dname": TLS dname (json-string, optional)
570 - "sasl_username": SASL username (json-string, optional)
571
572Example:
573
574{ "event": "VNC_INITIALIZED",
575 "data": {
576 "server": { "auth": "sasl", "family": "ipv4",
577 "service": "5901", "host": "0.0.0.0"},
578 "client": { "family": "ipv4", "service": "46089",
579 "host": "127.0.0.1", "sasl_username": "luiz" } },
580 "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
581
Eric Blake032badd2014-07-23 06:26:18 -0600582VSERPORT_CHANGE
583---------------
584
585Emitted when the guest opens or closes a virtio-serial port.
586
587Data:
588
589- "id": device identifier of the virtio-serial port (json-string)
590- "open": true if the guest has opened the virtio-serial port (json-bool)
591
592Example:
593
594{ "event": "VSERPORT_CHANGE",
595 "data": { "id": "channel0", "open": true },
596 "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
597
Luiz Capitulinodfab4892014-06-26 09:33:47 -0400598WAKEUP
599------
600
601Emitted when the guest has woken up from S3 and is running.
602
603Data: None.
604
605Example:
606
607{ "event": "WAKEUP",
608 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
609
610WATCHDOG
611--------
612
613Emitted when the watchdog device's timer is expired.
614
615Data:
616
617- "action": Action that has been taken, it's one of the following (json-string):
618 "reset", "shutdown", "poweroff", "pause", "debug", or "none"
619
620Example:
621
622{ "event": "WATCHDOG",
623 "data": { "action": "reset" },
624 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
625
626Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event is
627followed respectively by the RESET, SHUTDOWN, or STOP events.