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 :|