[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 00/11]: QMP feature negotiation support
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [RFC 00/11]: QMP feature negotiation support |
Date: |
Fri, 22 Jan 2010 11:21:22 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
A few quick questions before I dive into the patches...
Luiz Capitulino <address@hidden> writes:
> Feature negotiation allows clients to enable QMP capabilities they are
> interested in using. This allows QMP to envolve without breaking old clients.
>
> A capability is a new QMP feature and/or protocol change which is not part of
> the core protocol as defined in the QMP spec.
>
> Feature negotiation is implemented by defining a set of rules and adding
> mode-oriented support.
>
> The set of rules are:
>
> o All QMP capabilities are disabled by default
> o All QMP capabilities must be advertised in the capabilities array
> o Commands to enable/disable capabilities must be provided
>
> NOTE: Asynchronous messages are now considered a capability.
>
> Mode-oriented support adds the following to QMP:
>
> o Two modes: handshake and operational
> o By default all QMP Monitors start in handshake mode
"By default"? Is there a way to start a QMP monitor in another mode?
> o In handshake mode only commands to query/enable/disable QMP capabilities are
> allowed (there are few exceptions)
Note to self: check out the exception, and why we might want them.
> o Clients can switch to the operational mode at any time
Can they switch back? I hope not.
> o In Operational mode most commands are allowed and QMP capabilities changes
> made in handshake mode take effect
>
> Also note that each QMP Monitor has its own mode state and set of
> capabilities,
> this means that if QEMU is started with N QMP Monitors protocol setup done in
> one of them doesn't affect the others.
>
> Session example:
>
> """
> {"QMP": {"capabilities": ["async messages"]}}
>
> { "execute": "query-qmp-mode" }
> {"return": {"mode": "handshake"}}
Why would clients want to query the mode?
> { "execute": "change", "arguments": { "device": "vnc", "target": "password",
> "arg": "1234" } }
> {"error": {"class": "QMPInvalidModeCommad", "desc": "The issued command is
> invalid in this mode", "data": {}}}
I'd treat this like a completely unknown command.
> { "execute": "async_msg_enable", "arguments": { "name": "STOP" } }
> {"return": {}}
>
> { "execute": "qmp_switch_mode", "arguments": { "mode": "operational" } }
> {"return": {}}
Do we envisage mode transitions other than handshake -> operational?
> { "execute": "query-qmp-mode" }
> {"return": {"mode": "operational"}}
>
> { "execute": "change", "arguments": { "device": "vnc", "target": "password",
> "arg": "1234" } }
> {"return": {}}
> """
>
> TODO:
>
> - Update the spec
> - Test more and fix some known issues
> - Improve the changelog a bit
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, (continued)
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Luiz Capitulino, 2010/01/25
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Anthony Liguori, 2010/01/24
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Avi Kivity, 2010/01/24
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Anthony Liguori, 2010/01/24
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Luiz Capitulino, 2010/01/25
[Qemu-devel] Re: [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Avi Kivity, 2010/01/24
[Qemu-devel] [PATCH 09/11] Monitor: Introduce find_info_cmd(), Luiz Capitulino, 2010/01/21
[Qemu-devel] [PATCH 10/11] QError: New QERR_QMP_INVALID_MODE_COMMAND, Luiz Capitulino, 2010/01/21
[Qemu-devel] [PATCH 11/11] QMP: Enable feature negotiation support, Luiz Capitulino, 2010/01/21
Re: [Qemu-devel] [RFC 00/11]: QMP feature negotiation support,
Markus Armbruster <=
Re: [Qemu-devel] [RFC 00/11]: QMP feature negotiation support, Anthony Liguori, 2010/01/22
- Re: [Qemu-devel] [RFC 00/11]: QMP feature negotiation support, Markus Armbruster, 2010/01/25
- Re: [Qemu-devel] [RFC 00/11]: QMP feature negotiation support, Luiz Capitulino, 2010/01/26
- Re: [Qemu-devel] [RFC 00/11]: QMP feature negotiation support, Jamie Lokier, 2010/01/26
- Re: [Qemu-devel] [RFC 00/11]: QMP feature negotiation support, Luiz Capitulino, 2010/01/26
- Re: [Qemu-devel] [RFC 00/11]: QMP feature negotiation support, Daniel P. Berrange, 2010/01/26
- Re: [Qemu-devel] [RFC 00/11]: QMP feature negotiation support, Jamie Lokier, 2010/01/26
- Re: [Qemu-devel] [RFC 00/11]: QMP feature negotiation support, Luiz Capitulino, 2010/01/26