On Thu, Sep 13, 2012 at 03:25:44PM +0800, Guannan Ren wrote: > > v2 fixed: > (1) type int->size_t > (2) Don't output filter attributes with default -1 value in XML. > (3) Treat 0x0(0 decimal) as valid value for USB vendorID and productID > as well as USB classID and bcdDevice code. > (4) doc fixed. > > BZ RFE https://bugzilla.redhat.com/show_bug.cgi?id=795929 > qemu support: > http://git.qemu.org/?p=qemu.git;a=commitdiff;h=6af165892cf900291046f1d25f95416f379504c2 > > Since qemu has have the code to support USB redirection filter. This set of > patches try to support it from libvirt. > The input XML format is like this: > <devices> > ... > <redirdev bus='usb' type='spicevmc'> > <address type='usb' bus='0' port='4'/> > </redirdev> > <redirfilter> > <usbdev class='0x08' vendor='0x1234' product='0xbeef' \ > version='2.00' allow='yes'/> > <usbdev allow='no'/> > </redirfilter> > ... > </devices> > > Multiple <usbdev> element as one of filter rule could be added into parent > element <redirfilter>, only no more than <redirfilter> element could exists. > There is no 1:1 mapping between ports and redirected devices and qemu and > spicy client couldn't decide into which usbredir ports the client can 'plug' > redirected devices. So it make sense to apply all of filter rules global to > all existing usb redirection devices. class attribute is USB Class codes. > version is bcdDevice value of USB device. vendor and product is USB vendorId > and productId. > -1 can be used to allow any value for a field. Except allow attribute > the other four are optional, default value is -1. > > The above XML will be converted to the following qemu command line: > If there are multiple usb-redir device, all of them have the same filter rules. > -device usb-redir,chardev=charredir0,id=redir0,\ > filter=0x08:0x1234:0xBEEF:0x2000:1|-1:-1:-1:-1:0,bus=usb.0,port=4 > > Guannan Ren(0/4) > qemu: define and parse USB redirection filter XML > qemu: build USB redirection filter qemu command line > test: add xml2argvtest for usb-redir filter and update > doc: update usb redirection filter infomation on > > docs/formatdomain.html.in | 38 +++++++++++------ > docs/schemas/domaincommon.rng | 66 +++++++++++++++++++++++++++++ > src/conf/domain_conf.c | 339 +++++++++++++++++++++++++++++.. > src/conf/domain_conf.h | 21 +++++++++ > src/qemu/qemu_command.c | 45 +++++++++++++++++++- > src/qemu/qemu_command.h | 5 ++- > src/qemu/qemu_hotplug.c | 3 +- > tests/qemuxml2argvdata/qemuxml2argv-usb-redir-filter.args | 10 +++++ > tests/qemuxml2argvdata/qemuxml2argv-usb-redir-filter.xml | 45 ++++++++++++++++++++ > tests/qemuxml2argvtest.c | 6 +++ > 10 files changed, 559 insertions(+), 19 deletions(-) ACK to all 4 now Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list