On Thu, Jun 26, 2025 at 06:01:30PM +0200, Maximilian Martin wrote:
Am 23.06.2025 um 16:50 schrieb Daniel P. Berrangé:
> On Mon, Apr 21, 2025 at 09:38:34PM +0200, Maximilian Martin via Devel wrote:
> > This resubmission splits up the previous patch into multiple patches and
> > incorporates review comments from Michal Prívozník.
> >
> > Currently, only vendor/product and bus/device matching are supported for USB
host
> > devices. Neither of these provide a stable and persistent way of assigning a
guest
> > a specific host device. Vendor/product can be ambiguous. Device numbers change
on
> > every enumeration.
> >
> > This patch adds a bus/port matching, which allows a specific port on the host
to be
> > specified using the dotted notation found in Linux's "devpath"
sysfs attribute.
> In terms of our API, we're expecting people to use the
> 'node device' APIs to identify what devices are available
> on the host and their attributes, rather than queryin
> Linux directly. This gives us a platform independant
> usage model, which also works when the mgmt app has no
> login to the virt host.
>
>
> Currently for USB devices we report bus, dev, vendor & product,
> but don't report the port:
>
> # virsh nodedev-dumpxml usb_1_10_4
> <device>
> <name>usb_1_10_4</name>
> <path>/sys/devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10.4</path>
> <devnode type='dev'>/dev/bus/usb/001/004</devnode>
> <parent>usb_1_10</parent>
> <driver>
> <name>usb</name>
> </driver>
> <capability type='usb_device'>
> <bus>1</bus>
> <device>4</device>
> <product id='0x10c0'>Dell Integrated Hub</product>
> <vendor id='0x1604'>Tascam</vendor>
> </capability>
> </device>
>
> we need to add 'port' to this xml document under the 'usb_device'
> capability.
>
Well, the port is included in the path (everything after last '-'). udev
does not report it explicitly. Do you think this is enough or should I parse
the path and add the port to capabilites?
No, we would consider the path to be a platform specific opaque string,
and liable to change. So it isn't something apps should be parsing to
extract info from.
We need the path explicitly modelled under the usb_device capability
With regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|