Hi,
Now QEMU has a guest agent tool:
http://wiki.qemu.org/Features/QAPI/GuestAgent
Guest agent is used to send "guest agent commands" to agent, and agent
will do some work and return the results via QMP protocol. Now
qemu-guest-agent is mainly for single direction: Host->Guest, that is
users will send command from host to guest.
I think it is useful to extend single direction to two-way protocol.
Because sometimes, guest OS might have interest in Host's information,
such as QEMU versions, with/without hardware assist virtualization
features, host OS versions, host RAM/CPU usage.
Guest and host channel will add a individual command interface called
"qemu-channel", (in the future, it is possible to merge it with qemu-ga).
Usage can be like this:
1) install qemu-channel to guest OS. In windows, it also can be
installed as a service, like qemu-ga.exe.
2) qemu-channel open a listen socket, waiting for user input.
3) interact with qemu-channel, using socat/nc to send command to
qemu-channel, such as:
{"execute":"get-host-ramsize"}
4) qemu-channel communicates with QEMU, via a certain transport method.
QEMU returns the results to qemu-channel.
5) qemu-channel writes result to client.
Since qemu guest agent already has channel/service/commands code, I
think I can re-use some of them.
Do you have any suggestions or requests about my RFC? Please let me know
your ideas, thanks in advance. :)