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. :)


Reply via email to