[Spice-devel] usb redirection status report

Hans de Goede hdegoede at redhat.com
Wed Jan 19 10:15:47 PST 2011

Hi All,

As most of you know I'm working on usb redirection (making client usb devices
accessible in guests over the network).

I thought it would be a good idea to write a short status report.

So fat the following has been done:

* written and posted a network protocol for usb redir. over the network,
and send this to the list.

* a 2nd revison is ready incorporating all comments from the mailinglist
discussion. I'll post this to the list soon.

* looked at using some pre-existing marshalling / demarshalling solution,
specifically looked at google's protocol buffers. Not an option as this
uses c++. There is a third party C version of protocol buffers, but this
cannot deal with streaming input, making it not usable for usb redirection.

* Designed an API for a transport independent, marshaller / demarshaller
for the protocol.

* Implemented a roll my own marshaller / demarshaller
for the protocol.

* Designed an API for a (transport indepenent) usb-host object/library
which can be incorporated into spice-client, or a vnc client, etc.
To easily add usb host capabilities to client-applications.

* Implemented a skeleton version of the usb-host (still need to implement
most usb redir commands).

* Wrote a standalone usb-host application using standard tcp/ip[v4|v6] as
transport, as proof of concept / for testing purposes: usbredirserver

To Do:
* Finish usb-host library
* Write a test client (usb-guest) for testing
* Implement a transport independent qemu usb-host talking the usb
redir protocol.
* Hook up a monitor command to hookup the qemu usb-redir-host connect to a
* Test / debug / test
* Integrate with Spice (use a spice channel as transport)
* Integrate with vnc?



More information about the Spice-devel mailing list