qemu/QMP
Luiz Capitulino ca9567e234 QMP: Add QEMU's version to the greeting message
With capability negotiation support clients will only have a chance
to check QEMU's version (ie. issue 'query-version') after the
negotiation procedure is done.

It might be useful to clients to check QEMU's version before
negotiating features, though.

To allow that, this commit adds the QEMU's version object to the
greeting message.

Not really sure this is needed, but doesn't hurt anyway.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-10 12:46:05 -06:00
..
qmp-events.txt QMP: BLOCK_IO_ERROR event handling 2010-02-10 11:57:02 -06:00
qmp-shell QMP: Introduce qmp-shell 2009-12-03 09:41:25 -06:00
qmp-spec.txt QMP: Add QEMU's version to the greeting message 2010-02-10 12:46:05 -06:00
qmp.py QMP: Introduce qmp-shell 2009-12-03 09:41:25 -06:00
README QMP: Add QEMU's version to the greeting message 2010-02-10 12:46:05 -06:00
vm-info QMP: Introduce vm-info 2009-12-03 09:41:25 -06:00

                          QEMU Monitor Protocol
                          =====================

Introduction
-------------

The QEMU Monitor Protocol (QMP) allows applications to communicate with
QEMU's Monitor.

QMP is JSON[1] based and has the following features:

- Lightweight, text-based, easy to parse data format
- Asynchronous events support 
- Stability

For more information, please, refer to the following files:

o qmp-spec.txt    QEMU Monitor Protocol current specification
o qmp-events.txt  List of available asynchronous events

There are also two simple Python scripts available:

o qmp-shell       A shell
o vm-info         Show some information about the Virtual Machine

[1] http://www.json.org

Usage
-----

To enable QMP, QEMU has to be started in "control mode". There are
two ways of doing this, the simplest one is using the the '-qmp'
command-line option.

For example:

$ qemu [...] -qmp tcp:localhost:4444,server

Will start QEMU in control mode, waiting for a client TCP connection
on localhost port 4444.

It is also possible to use the '-mon' command-line option to have
more complex combinations. Please, refer to the QEMU's manpage for
more information.

Simple Testing
--------------

To manually test QMP one can connect with telnet and issue commands:

$ telnet localhost 4444
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
{"QMP": {"version": {"qemu": "0.12.50", "package": ""}, "capabilities": []}}
{ "execute": "qmp_capabilities" }
{"return": {}}
{ "execute": "query-version" }
{"return": {"qemu": "0.12.50", "package": ""}}

Contact
-------

http://www.linux-kvm.org/page/MonitorProtocol
Luiz Fernando N. Capitulino <lcapitulino@redhat.com>