Clipboard sharing protocol: Difference between revisions
Dave.scott (talk | contribs) (Created page with "This protocol allows an in-guest agent to share clipboard data with dom0, so that it could be integrated with an emulated frame buffer, such as that exposed by qemu over VNC. = …") |
Dave.scott (talk | contribs) |
||
Line 23: | Line 23: | ||
The backend acts as the RFB server, the guest acts as the RFB client. |
The backend acts as the RFB server, the guest acts as the RFB client. |
||
* The server sends 'ProtocolVersion' with RFB protocol version 3.8 |
|||
* The client sends 'ProtocolVersion' with RFB protocol version 3.8 |
|||
* The server sends a single security type: None |
|||
* The server sends a 'SecurityResult' indicating success |
|||
* The client sends a 'ClientInit' message with shared = 1 |
|||
* The server sends a 'ServerInit' message with the frame buffer size set to (0, 0) and any valid pixel format |
|||
We now consider the connection established. The following messages are now possible: |
|||
* The server sends a 'ServerCutText' when it wants to push data into the guest's cut buffer |
|||
* The client sends a 'ClientCutText' when it wants to push data into the server's cut buffer |
Revision as of 14:13, 29 June 2014
This protocol allows an in-guest agent to share clipboard data with dom0, so that it could be integrated with an emulated frame buffer, such as that exposed by qemu over VNC.
Status
Status: version 0.1 (early draft)
Overview
The protocol is intended to be used over a 'channel' with name: org.xenproject.guest.clipboard.0.1
The protocol is a subset of the VNC RFB protocol (http://www.realvnc.com/docs/rfbproto.pdf). Since the main expected use is to integrate with a qemu VNC frame buffer, RFB primitives should be readily available in the implementation.
We use only the following messages:
- ProtocolVersion
- SecurityVersion
- ClientInit
- ServerInit
- ClientCutText
- ServerCutText
Protocol
The backend acts as the RFB server, the guest acts as the RFB client.
- The server sends 'ProtocolVersion' with RFB protocol version 3.8
- The client sends 'ProtocolVersion' with RFB protocol version 3.8
- The server sends a single security type: None
- The server sends a 'SecurityResult' indicating success
- The client sends a 'ClientInit' message with shared = 1
- The server sends a 'ServerInit' message with the frame buffer size set to (0, 0) and any valid pixel format
We now consider the connection established. The following messages are now possible:
- The server sends a 'ServerCutText' when it wants to push data into the guest's cut buffer
- The client sends a 'ClientCutText' when it wants to push data into the server's cut buffer