Am 18.08.25, 16:40 schrieb Maximilian Martin via Devel
          <devel@
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