[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Questions about the new usb hotplug code in libxl and about adding hotplug (with qmp) usbredir tcp channels

On 27/04/16 12:02, Fabio Fantoni wrote:
> Hi, I took a look at the new pvusb hotplug code in libxl to try to add
> also hotplug (with qmp) usbredir tcp channels.
> Adding usbredir tcp channels at domU start requires for example adding
> qemu parameters like these: "-chardev
> socket,id=charredir4,host=,port=40000 -device
> usb-redir,chardev=charredir4,id=redir4".
> It is possible to hotplug it with qmp using "chardev-add" and
> "device_add" commands.
> Looking at old George Dunlap's patches I tested years ago
> (http://xenbits.xen.org/gitweb/?p=people/gdunlap/xen.git;a=commitdiff;h=f7a77843e3fcf070c72115be8ed349a3bfe34e60)
> I can understand what they do and I can add similar qmp functions for
> usbredir tcp too.
> But now I see that bigger and different usb hotplug code was added, I
> looked at these patches:
> http://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=bf7628f087b212052a0e9f024044b2790c33f820
> http://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=043910384cb9ea2c781a7dceac238e110a559c10
> and the full current code in xen's staging branch but I didn't find qmp
> commands for the qemu usb passthrough, I suppose it is missing or
> incomplete (though strange), am I wrong?
> If that is correct, pvusb drivers are needed for both host and domU to
> have usb passthrough working but in new windows pv drivers, the pvusb
> one is missing, so without the "qemu emulated" usb passthrough it
> doesn't work at all in similar cases, right?

That's right -- the PVUSB code *only* does PVUSB passthrough.  The
interface was designed, however, to be able to add emulated USB on top.

> How do you think I should proceed to implement hotplug usbredir tcp
> channels in libxl?

So I'm not familiar with usbredir tcp channels.  I'm guessing that it
allows you to transmit the USB commands "over the wire", so that you
could connect (say) a keyboard or printer on your local computer to the
qemu process running in a remote dom0, and have the USB device presented
as an emulated device to the guest?

If so, then:
1. It may be possible using Juergen's qusb work to act as a usbredir tcp
channel <-> pvusb bridge
2. But having the devices presented to Windows guests without pvusbfront
drivers would depend on having emulated USB working first.

I'm working up a draft implementation of the emulated USB just so I can
make sure the current interface is suitable to extend it before it
becomes public (and thus needs to be supported).

I'm not sure how the usbredir tcp channel interacts with emulated
controllers; that's what will determine what the libxl interface will
look like.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.