Re: [RFC PATCH 1/1] Add a usbredir kernel module to remotely connect USB devices over IP.

Jeremy White
2015-07-22T16:55:37Z

On 07/22/2015 09:34 AM, Greg KH wrote:
> On Wed, Jul 22, 2015 at 09:03:53AM -0500, Jeremy White wrote:
>> On 07/09/2015 05:06 AM, Alex Elsayed wrote:
>>> Alan Stern wrote:
>>>
>>>> On Mon, 6 Jul 2015, Jeremy White wrote:
>>>>
>>>>> Anything else fundamental to usbip that should inform the design of a
>>>>> usbredir driver? usbip appears to be based off a 2004 vintage of
>>>>> dummy_hcd. I'll look thoughtfully at the current dummy_hcd; please let
>>>>> me know if there is anything else I should consider.
>>>>
>>>> One thing that springs to mind is USB-3 streams. When dummy-hcd was
>>>> expanded to include USB-3, that was the major new ingredient.
>>>
>>> Another thing that comes to mind is that the USB-IF has its own official
>>> standard for this kind of thing now, called Media-Agnostic USB[1]. In
>>> November of 2014 a driver[2] was posted, followed by a second version[3],
>>> and it is apparently being refined inside Intel[4].
>>>
>>> [1]
>>> http://www.usb.org/developers/docs/devclass_docs/Media_Agnostic_USB_v1.0.zip
>>> [2] http://thread.gmane.org/gmane.linux.kernel/1820297
>>> [3] http://thread.gmane.org/gmane.linux.drivers.driver-project.devel/60498
>>> [4] http://article.gmane.org/gmane.linux.drivers.driver-project.devel/60757
>>
>> Thanks for the pointer, Alex.
>>
>> I spent some time with the spec and their proposed code. It does seem
>> plausible that XSpice could use a mausb/usbredir protocol converter. So if
>> there was a mausb kernel module, I could potentially implement support in
>> XSpice in user space and not need a usbredir module.
>>
>> I sent an email to the two developers at Intel to ask if there had been any
>> further progress and if I could collaborate with them. I have not heard
>> back.
>>
>> The MA spec is substantial and seems well thought out. But the usbredir
>> protocol has the virtue of being relatively mature - it's 5 years old, with
>> code in daily use.
>>
>> At this point it seems the best path forward is to continue work on the
>> usbredir kernel module, which I will do unless I get some new information.
>
> Please work with the existing people, or with the existing spec, I don't
> want to be adding multiple versions of this type of protocol to the
> kernel. As it is, I really don't even want to take your code, given
> that usbip is already there. Ignoring it isn't ok.

The usbredir spec predates MA-USB by 4 years; it has greater claim to
the title 'existing' than does MA-USB. I recognize that does not make
it better, and I recognize the value of a spec from a standards body.
But I also respect community standards in production use.

And I did not and am not ignoring the MA-USB patch and spec.

I privately wrote to the Intel authors of that patch a week ago; I've
publicly included them in this thread as well. As far as I can tell,
they've been silent on this front since November; I fear that they may
have moved on, or that Intel is not actively working on this. None of
the Intel authors listed on the MA-USB specification are kernel
contributors, so I did not have a way to reach out to them. If you have
the means to engage others, I would appreciate that.

With no other input, my analysis was that it is better to proceed with
the existing spec. It has a body of useful code, active users and
developers, and I am certain it will solve my problem.

Also, as for usbip, I'll point out that the existence of MA-USB
corroborates Hans rationale for the need to supplant usbip.

As I said, I will respond to any new information I receive. It would be
great to have a kernel module developed (or at least approved) by
seasoned hands at Intel.

But how long should I wait?

Cheers,

Jeremy