[PATCH v3 0/7] USB hostdev: allow addressing by port

Maximilian Martin via Devel posted 7 patches 6 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20250818143417.765-1-maximilian._5Fmartin@gmx.de
docs/formatdomain.rst                         |  29 ++--
src/conf/domain_conf.c                        |  58 ++++++-
src/conf/domain_conf.h                        |   1 +
src/conf/node_device_conf.c                   |   5 +
src/conf/node_device_conf.h                   |   1 +
src/conf/schemas/basictypes.rng               |  31 ++++
src/conf/schemas/domaincommon.rng             |  41 +----
src/conf/schemas/nodedev.rng                  |   3 +
src/hypervisor/virhostdev.c                   | 131 ++++++++------
src/libvirt_private.syms                      |   2 -
src/node_device/node_device_udev.c            |   4 +
src/util/virusb.c                             | 160 ++++++------------
src/util/virusb.h                             |  22 +--
.../usb_device_1d6b_1_0000_00_1d_0.xml        |   1 +
...ostdev-usb-address-port.x86_64-latest.args |  36 ++++
...hostdev-usb-address-port.x86_64-latest.xml |  45 +++++
.../hostdev-usb-address-port.xml              |  28 +++
...tdev-usb-vendor-product.x86_64-latest.args |  35 ++++
...stdev-usb-vendor-product.x86_64-latest.xml |  44 +++++
.../hostdev-usb-vendor-product.xml            |  36 ++++
tests/qemuxmlconftest.c                       |  25 +++
tests/virusbtest.c                            | 149 +++++++++++-----
.../sys_bus_usb/devices/1-1.5.3.1/devpath     |   1 +
.../sys_bus_usb/devices/1-1.5.3.3/devpath     |   1 +
.../sys_bus_usb/devices/1-1.5.3/devpath       |   1 +
.../sys_bus_usb/devices/1-1.5.4/devpath       |   1 +
.../sys_bus_usb/devices/1-1.5.5/devpath       |   1 +
.../sys_bus_usb/devices/1-1.5.6/devpath       |   1 +
.../sys_bus_usb/devices/1-1.5/devpath         |   1 +
.../sys_bus_usb/devices/1-1.6/devpath         |   1 +
.../sys_bus_usb/devices/1-1/devpath           |   1 +
.../sys_bus_usb/devices/2-1.2/devpath         |   1 +
.../sys_bus_usb/devices/2-1/devpath           |   1 +
.../sys_bus_usb/devices/usb1/devpath          |   1 +
.../sys_bus_usb/devices/usb2/devpath          |   1 +
.../sys_bus_usb/devices/usb3/devpath          |   1 +
.../sys_bus_usb/devices/usb4/devpath          |   1 +
37 files changed, 631 insertions(+), 271 deletions(-)
create mode 100644 tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/hostdev-usb-address-port.xml
create mode 100644 tests/qemuxmlconfdata/hostdev-usb-vendor-product.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/hostdev-usb-vendor-product.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/hostdev-usb-vendor-product.xml
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.6/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1.2/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb1/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb2/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb3/devpath
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb4/devpath
[PATCH v3 0/7] USB hostdev: allow addressing by port
Posted by Maximilian Martin via Devel 6 months, 2 weeks ago
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.

The path series is based on the previous work of Thomas Hebb: https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/message/7U3HFUW3DGDOSF4RIBRZJINKFDYCE2ZH/
This resubmission includes Daniel's patch which extends the USB hostdev test logic.

Maximilian Martin (7):
  tests: validate an XML config with USB vendor/product set
  virusb test data: add devpath files for port addressing
  domain_conf, virhostdev, virusb, virusb test: add bus/port matching
  schema: add USB port attribute
  tests: validate an XML config with USB bus/port set
  nodedev: add USB port to nodedev XML
  docs: add description for USB port matching

 docs/formatdomain.rst                         |  29 ++--
 src/conf/domain_conf.c                        |  58 ++++++-
 src/conf/domain_conf.h                        |   1 +
 src/conf/node_device_conf.c                   |   5 +
 src/conf/node_device_conf.h                   |   1 +
 src/conf/schemas/basictypes.rng               |  31 ++++
 src/conf/schemas/domaincommon.rng             |  41 +----
 src/conf/schemas/nodedev.rng                  |   3 +
 src/hypervisor/virhostdev.c                   | 131 ++++++++------
 src/libvirt_private.syms                      |   2 -
 src/node_device/node_device_udev.c            |   4 +
 src/util/virusb.c                             | 160 ++++++------------
 src/util/virusb.h                             |  22 +--
 .../usb_device_1d6b_1_0000_00_1d_0.xml        |   1 +
 ...ostdev-usb-address-port.x86_64-latest.args |  36 ++++
 ...hostdev-usb-address-port.x86_64-latest.xml |  45 +++++
 .../hostdev-usb-address-port.xml              |  28 +++
 ...tdev-usb-vendor-product.x86_64-latest.args |  35 ++++
 ...stdev-usb-vendor-product.x86_64-latest.xml |  44 +++++
 .../hostdev-usb-vendor-product.xml            |  36 ++++
 tests/qemuxmlconftest.c                       |  25 +++
 tests/virusbtest.c                            | 149 +++++++++++-----
 .../sys_bus_usb/devices/1-1.5.3.1/devpath     |   1 +
 .../sys_bus_usb/devices/1-1.5.3.3/devpath     |   1 +
 .../sys_bus_usb/devices/1-1.5.3/devpath       |   1 +
 .../sys_bus_usb/devices/1-1.5.4/devpath       |   1 +
 .../sys_bus_usb/devices/1-1.5.5/devpath       |   1 +
 .../sys_bus_usb/devices/1-1.5.6/devpath       |   1 +
 .../sys_bus_usb/devices/1-1.5/devpath         |   1 +
 .../sys_bus_usb/devices/1-1.6/devpath         |   1 +
 .../sys_bus_usb/devices/1-1/devpath           |   1 +
 .../sys_bus_usb/devices/2-1.2/devpath         |   1 +
 .../sys_bus_usb/devices/2-1/devpath           |   1 +
 .../sys_bus_usb/devices/usb1/devpath          |   1 +
 .../sys_bus_usb/devices/usb2/devpath          |   1 +
 .../sys_bus_usb/devices/usb3/devpath          |   1 +
 .../sys_bus_usb/devices/usb4/devpath          |   1 +
 37 files changed, 631 insertions(+), 271 deletions(-)
 create mode 100644 tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.args
 create mode 100644 tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.xml
 create mode 100644 tests/qemuxmlconfdata/hostdev-usb-address-port.xml
 create mode 100644 tests/qemuxmlconfdata/hostdev-usb-vendor-product.x86_64-latest.args
 create mode 100644 tests/qemuxmlconfdata/hostdev-usb-vendor-product.x86_64-latest.xml
 create mode 100644 tests/qemuxmlconfdata/hostdev-usb-vendor-product.xml
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.6/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1.2/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb1/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb2/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb3/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb4/devpath

-- 
2.39.5
Re: [PATCH v3 0/7] USB hostdev: allow addressing by port
Posted by Daniel P. Berrangé via Devel 3 weeks, 2 days ago
On Mon, Aug 18, 2025 at 04:34:10PM +0200, Maximilian Martin via Devel wrote:
> 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.
> 
> The path series is based on the previous work of Thomas Hebb: https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/message/7U3HFUW3DGDOSF4RIBRZJINKFDYCE2ZH/
> This resubmission includes Daniel's patch which extends the USB hostdev test logic.

Thanks, I have tested this code now, so consider the whole
series to be

 Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>

I will push this once a CI pipeline succeeds.

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

Aw: [PATCH v3 0/7] USB hostdev: allow addressing by port
Posted by Maximilian Martin via Devel 6 months ago

                
            
Re: [PATCH v3 0/7] USB hostdev: allow addressing by port
Posted by Maximilian Martin via Devel 5 months, 2 weeks ago
Ping :)
Let me know if there is anything I can do to make this feature finally 
come to life.


Am 04.09.2025 um 22:11 schrieb Maximilian Martin:
> Ping
>
>
> Am 18.08.25, 16:40 schrieb Maximilian Martin via Devel 
> <devel@lists.libvirt.org <http://lists.libvirt.org>>:
>
>     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.
>
>     The path series is based on the previous work of Thomas Hebb:
>     https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/message/7U3HFUW3DGDOSF4RIBRZJINKFDYCE2ZH/
>     This resubmission includes Daniel's patch which extends the USB
>     hostdev test logic.
>
>     Maximilian Martin (7):
>     tests: validate an XML config with USB vendor/product set
>     virusb test data: add devpath files for port addressing
>     domain_conf, virhostdev, virusb, virusb test: add bus/port matching
>     schema: add USB port attribute
>     tests: validate an XML config with USB bus/port set
>     nodedev: add USB port to nodedev XML
>     docs: add description for USB port matching
>
>     docs/formatdomain.rst | 29 ++--
>     src/conf/domain_conf.c | 58 ++++++-
>     src/conf/domain_conf.h | 1 +
>     src/conf/node_device_conf.c | 5 +
>     src/conf/node_device_conf.h | 1 +
>     src/conf/schemas/basictypes.rng | 31 ++++
>     src/conf/schemas/domaincommon.rng | 41 +----
>     src/conf/schemas/nodedev.rng | 3 +
>     src/hypervisor/virhostdev.c | 131 ++++++++------
>     src/libvirt_private.syms | 2 -
>     src/node_device/node_device_udev.c | 4 +
>     src/util/virusb.c | 160 ++++++------------
>     src/util/virusb.h | 22 +--
>     .../usb_device_1d6b_1_0000_00_1d_0.xml | 1 +
>     ...ostdev-usb-address-port.x86_64-latest.args | 36 ++++
>     ...hostdev-usb-address-port.x86_64-latest.xml | 45 +++++
>     .../hostdev-usb-address-port.xml | 28 +++
>     ...tdev-usb-vendor-product.x86_64-latest.args | 35 ++++
>     ...stdev-usb-vendor-product.x86_64-latest.xml | 44 +++++
>     .../hostdev-usb-vendor-product.xml | 36 ++++
>     tests/qemuxmlconftest.c | 25 +++
>     tests/virusbtest.c | 149 +++++++++++-----
>     .../sys_bus_usb/devices/1-1.5.3.1/devpath | 1 +
>     .../sys_bus_usb/devices/1-1.5.3.3/devpath | 1 +
>     .../sys_bus_usb/devices/1-1.5.3/devpath | 1 +
>     .../sys_bus_usb/devices/1-1.5.4/devpath | 1 +
>     .../sys_bus_usb/devices/1-1.5.5/devpath | 1 +
>     .../sys_bus_usb/devices/1-1.5.6/devpath | 1 +
>     .../sys_bus_usb/devices/1-1.5/devpath | 1 +
>     .../sys_bus_usb/devices/1-1.6/devpath | 1 +
>     .../sys_bus_usb/devices/1-1/devpath | 1 +
>     .../sys_bus_usb/devices/2-1.2/devpath | 1 +
>     .../sys_bus_usb/devices/2-1/devpath | 1 +
>     .../sys_bus_usb/devices/usb1/devpath | 1 +
>     .../sys_bus_usb/devices/usb2/devpath | 1 +
>     .../sys_bus_usb/devices/usb3/devpath | 1 +
>     .../sys_bus_usb/devices/usb4/devpath | 1 +
>     37 files changed, 631 insertions(+), 271 deletions(-)
>     create mode 100644
>     tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.args
>     create mode 100644
>     tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.xml
>     create mode 100644 tests/qemuxmlconfdata/hostdev-usb-address-port.xml
>     create mode 100644
>     tests/qemuxmlconfdata/hostdev-usb-vendor-product.x86_64-latest.args
>     create mode 100644
>     tests/qemuxmlconfdata/hostdev-usb-vendor-product.x86_64-latest.xml
>     create mode 100644
>     tests/qemuxmlconfdata/hostdev-usb-vendor-product.xml
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/1-1.6/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/1-1/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/2-1.2/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/2-1/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/usb1/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/usb2/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/usb3/devpath
>     create mode 100644
>     tests/virusbtestdata/sys_bus_usb/devices/usb4/devpath
>
>     -- 
>     2.39.5
>
Re: [PATCH v3 0/7] USB hostdev: allow addressing by port
Posted by Maximilian Martin via Devel 4 months, 3 weeks ago
Ping :)

Am 18.09.2025 um 08:25 schrieb Maximilian Martin via Devel:
> Ping :)
> Let me know if there is anything I can do to make this feature finally 
> come to life.
>
>
> Am 04.09.2025 um 22:11 schrieb Maximilian Martin:
>> Ping
>>
>>
>> Am 18.08.25, 16:40 schrieb Maximilian Martin via Devel 
>> <devel@lists.libvirt.org <http://lists.libvirt.org>>:
>>
>>     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.
>>
>>     The path series is based on the previous work of Thomas Hebb:
>>     https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/message/7U3HFUW3DGDOSF4RIBRZJINKFDYCE2ZH/
>>     This resubmission includes Daniel's patch which extends the USB
>>     hostdev test logic.
>>
>>     Maximilian Martin (7):
>>     tests: validate an XML config with USB vendor/product set
>>     virusb test data: add devpath files for port addressing
>>     domain_conf, virhostdev, virusb, virusb test: add bus/port matching
>>     schema: add USB port attribute
>>     tests: validate an XML config with USB bus/port set
>>     nodedev: add USB port to nodedev XML
>>     docs: add description for USB port matching
>>
>>     docs/formatdomain.rst | 29 ++--
>>     src/conf/domain_conf.c | 58 ++++++-
>>     src/conf/domain_conf.h | 1 +
>>     src/conf/node_device_conf.c | 5 +
>>     src/conf/node_device_conf.h | 1 +
>>     src/conf/schemas/basictypes.rng | 31 ++++
>>     src/conf/schemas/domaincommon.rng | 41 +----
>>     src/conf/schemas/nodedev.rng | 3 +
>>     src/hypervisor/virhostdev.c | 131 ++++++++------
>>     src/libvirt_private.syms | 2 -
>>     src/node_device/node_device_udev.c | 4 +
>>     src/util/virusb.c | 160 ++++++------------
>>     src/util/virusb.h | 22 +--
>>     .../usb_device_1d6b_1_0000_00_1d_0.xml | 1 +
>>     ...ostdev-usb-address-port.x86_64-latest.args | 36 ++++
>>     ...hostdev-usb-address-port.x86_64-latest.xml | 45 +++++
>>     .../hostdev-usb-address-port.xml | 28 +++
>>     ...tdev-usb-vendor-product.x86_64-latest.args | 35 ++++
>>     ...stdev-usb-vendor-product.x86_64-latest.xml | 44 +++++
>>     .../hostdev-usb-vendor-product.xml | 36 ++++
>>     tests/qemuxmlconftest.c | 25 +++
>>     tests/virusbtest.c | 149 +++++++++++-----
>>     .../sys_bus_usb/devices/1-1.5.3.1/devpath | 1 +
>>     .../sys_bus_usb/devices/1-1.5.3.3/devpath | 1 +
>>     .../sys_bus_usb/devices/1-1.5.3/devpath | 1 +
>>     .../sys_bus_usb/devices/1-1.5.4/devpath | 1 +
>>     .../sys_bus_usb/devices/1-1.5.5/devpath | 1 +
>>     .../sys_bus_usb/devices/1-1.5.6/devpath | 1 +
>>     .../sys_bus_usb/devices/1-1.5/devpath | 1 +
>>     .../sys_bus_usb/devices/1-1.6/devpath | 1 +
>>     .../sys_bus_usb/devices/1-1/devpath | 1 +
>>     .../sys_bus_usb/devices/2-1.2/devpath | 1 +
>>     .../sys_bus_usb/devices/2-1/devpath | 1 +
>>     .../sys_bus_usb/devices/usb1/devpath | 1 +
>>     .../sys_bus_usb/devices/usb2/devpath | 1 +
>>     .../sys_bus_usb/devices/usb3/devpath | 1 +
>>     .../sys_bus_usb/devices/usb4/devpath | 1 +
>>     37 files changed, 631 insertions(+), 271 deletions(-)
>>     create mode 100644
>>     tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.args
>>     create mode 100644
>>     tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.xml
>>     create mode 100644 tests/qemuxmlconfdata/hostdev-usb-address-port.xml
>>     create mode 100644
>>     tests/qemuxmlconfdata/hostdev-usb-vendor-product.x86_64-latest.args
>>     create mode 100644
>>     tests/qemuxmlconfdata/hostdev-usb-vendor-product.x86_64-latest.xml
>>     create mode 100644
>>     tests/qemuxmlconfdata/hostdev-usb-vendor-product.xml
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.6/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/1-1/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/2-1.2/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/2-1/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/usb1/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/usb2/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/usb3/devpath
>>     create mode 100644
>>     tests/virusbtestdata/sys_bus_usb/devices/usb4/devpath
>>
>>     -- 
>>     2.39.5
>>
>
Re: [PATCH v3 0/7] USB hostdev: allow addressing by port
Posted by Maximilian Martin via Devel 3 months, 2 weeks ago
Ping

Am 16.10.2025 um 16:36 schrieb Maximilian Martin via Devel:
> Ping :)
>
> Am 18.09.2025 um 08:25 schrieb Maximilian Martin via Devel:
>> Ping :)
>> Let me know if there is anything I can do to make this feature 
>> finally come to life.
>>
>>
>> Am 04.09.2025 um 22:11 schrieb Maximilian Martin:
>>> Ping
>>>
>>>
>>> Am 18.08.25, 16:40 schrieb Maximilian Martin via Devel 
>>> <devel@lists.libvirt.org <http://lists.libvirt.org>>:
>>>
>>>     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.
>>>
>>>     The path series is based on the previous work of Thomas Hebb:
>>>     https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/message/7U3HFUW3DGDOSF4RIBRZJINKFDYCE2ZH/
>>>     This resubmission includes Daniel's patch which extends the USB
>>>     hostdev test logic.
>>>
>>>     Maximilian Martin (7):
>>>     tests: validate an XML config with USB vendor/product set
>>>     virusb test data: add devpath files for port addressing
>>>     domain_conf, virhostdev, virusb, virusb test: add bus/port matching
>>>     schema: add USB port attribute
>>>     tests: validate an XML config with USB bus/port set
>>>     nodedev: add USB port to nodedev XML
>>>     docs: add description for USB port matching
>>>
>>>     docs/formatdomain.rst | 29 ++--
>>>     src/conf/domain_conf.c | 58 ++++++-
>>>     src/conf/domain_conf.h | 1 +
>>>     src/conf/node_device_conf.c | 5 +
>>>     src/conf/node_device_conf.h | 1 +
>>>     src/conf/schemas/basictypes.rng | 31 ++++
>>>     src/conf/schemas/domaincommon.rng | 41 +----
>>>     src/conf/schemas/nodedev.rng | 3 +
>>>     src/hypervisor/virhostdev.c | 131 ++++++++------
>>>     src/libvirt_private.syms | 2 -
>>>     src/node_device/node_device_udev.c | 4 +
>>>     src/util/virusb.c | 160 ++++++------------
>>>     src/util/virusb.h | 22 +--
>>>     .../usb_device_1d6b_1_0000_00_1d_0.xml | 1 +
>>>     ...ostdev-usb-address-port.x86_64-latest.args | 36 ++++
>>>     ...hostdev-usb-address-port.x86_64-latest.xml | 45 +++++
>>>     .../hostdev-usb-address-port.xml | 28 +++
>>>     ...tdev-usb-vendor-product.x86_64-latest.args | 35 ++++
>>>     ...stdev-usb-vendor-product.x86_64-latest.xml | 44 +++++
>>>     .../hostdev-usb-vendor-product.xml | 36 ++++
>>>     tests/qemuxmlconftest.c | 25 +++
>>>     tests/virusbtest.c | 149 +++++++++++-----
>>>     .../sys_bus_usb/devices/1-1.5.3.1/devpath | 1 +
>>>     .../sys_bus_usb/devices/1-1.5.3.3/devpath | 1 +
>>>     .../sys_bus_usb/devices/1-1.5.3/devpath | 1 +
>>>     .../sys_bus_usb/devices/1-1.5.4/devpath | 1 +
>>>     .../sys_bus_usb/devices/1-1.5.5/devpath | 1 +
>>>     .../sys_bus_usb/devices/1-1.5.6/devpath | 1 +
>>>     .../sys_bus_usb/devices/1-1.5/devpath | 1 +
>>>     .../sys_bus_usb/devices/1-1.6/devpath | 1 +
>>>     .../sys_bus_usb/devices/1-1/devpath | 1 +
>>>     .../sys_bus_usb/devices/2-1.2/devpath | 1 +
>>>     .../sys_bus_usb/devices/2-1/devpath | 1 +
>>>     .../sys_bus_usb/devices/usb1/devpath | 1 +
>>>     .../sys_bus_usb/devices/usb2/devpath | 1 +
>>>     .../sys_bus_usb/devices/usb3/devpath | 1 +
>>>     .../sys_bus_usb/devices/usb4/devpath | 1 +
>>>     37 files changed, 631 insertions(+), 271 deletions(-)
>>>     create mode 100644
>>>     tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.args
>>>     create mode 100644
>>>     tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.xml
>>>     create mode 100644
>>>     tests/qemuxmlconfdata/hostdev-usb-address-port.xml
>>>     create mode 100644
>>>     tests/qemuxmlconfdata/hostdev-usb-vendor-product.x86_64-latest.args
>>>     create mode 100644
>>>     tests/qemuxmlconfdata/hostdev-usb-vendor-product.x86_64-latest.xml
>>>     create mode 100644
>>>     tests/qemuxmlconfdata/hostdev-usb-vendor-product.xml
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.5/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/1-1.6/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/1-1/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/2-1.2/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/2-1/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/usb1/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/usb2/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/usb3/devpath
>>>     create mode 100644
>>>     tests/virusbtestdata/sys_bus_usb/devices/usb4/devpath
>>>
>>>     -- 
>>>     2.39.5
>>>
>>
>