[RFC PATCH 0/1] RFC - Implement a usbredir kernel module

Jeremy White
2015-06-30T22:01:10Z

The following patch proposes a new kernel module to provide an
alternate protocol for transporting USB devices over a TCP/IP connection.

This flows from a few conversations on the Spice devel mailing list.[1][2]

I am relying heavily on the opinion of Hans de Goede, who believes
that the usbredir protocol is superior to that used by the existing
usbip kernel module[3].

The basic approach in this module is the same as usbip (virtual hcd driver)
but it attempts to support a configurable number of devices and hubs,
rather than just one hub and the limit of 8 devices.

This version of the code should be sufficient to review my general
approach, but it is known to be incomplete. I have successfully mounted
and operated a thumb drive across the interface.

Hopefully it is enough to warrant advice and comments; feedback is
greatly appreciated.

Anyone wishing to test this will also need a related set of usbredir patches,
recently sent to the spice-devel mailing list.[4]

Roughly half of the code (all of the code that fails checkpatch <grin>)
was copied, essentially unchanged, from the usbredir project. I felt
that diffability was more important than checkpatch; I stand ready to
be corrected.

After review, I plan to build a fairly extensive set of unit tests
(see the new usbredirtestserver in [3]), and would hope to submit
a complete module later in the summer.

Cheers,

Jeremy

[1] http://lists.freedesktop.org/archives/spice-devel/2014-August/017145.html
[2] http://lists.freedesktop.org/archives/spice-devel/2015-April/019451.html
[3] http://lists.freedesktop.org/archives/spice-devel/2014-August/017174.html
[4] http://lists.freedesktop.org/archives/spice-devel/2015-June/020595.html