[RFC: vf-token 0/5] Introduce vf-token when using userspace PF

Vivek Kashyap vivek.kashyap at linux.intel.com
Thu Oct 5 23:04:59 UTC 2023


vf token is set by a vfio-pci based PF driver and it must be known to the
vfio-pci based VF driver. This vf-token is set by the PF driver before VF
drivers can access the device. vfio-pci driver and qemu support vf-token. 
This RFC patch series adds support to provide the vf-token (uuid format) 
in the domain XML and to generate the qemu commandline including the 
vf-token.

To support vf-token the new element will be used as follows:

<hostdev mode='subsystem' type='pci' managed='yes'>
   <driver name='vfio'/>
   <source>
     <address domain='0x0000' bus='0x0' slot='0x00' function='0x1'>
     <vf-token uuid='00112233-4455-6677-8899-aabbccddeeff'/>
     </address>
   </source>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</hostdev>

The generated commandline will include the following:

-device {"driver":"vfio-pci","host":"0000:00:0.1",
         "vf-token":"00112233-4455-6677-8899-aabbccddeeff",
         "id":"hostdev0","bus":"pci.0","addr":"0x1"}

This patch is get feedback on the approach. Will post with add
documentation and testcases in follow-up.

Vivek Kashyap (5):
  virpci: Define vf-token
  qemu: vf-token capability
  conf: vf-token flag
  conf: vf-token parsing and formatting
  qemu: validate and generate vf-token on command line

 src/conf/device_conf.c            | 31 +++++++++++++++++++++++++++++--
 src/conf/device_conf.h            |  3 +++
 src/conf/domain_addr.h            |  1 +
 src/conf/domain_conf.c            |  5 +++++
 src/conf/schemas/basictypes.rng   | 11 +++++++++++
 src/conf/schemas/domaincommon.rng |  1 +
 src/libvirt_private.syms          |  1 +
 src/qemu/qemu_capabilities.c      |  3 +++
 src/qemu/qemu_capabilities.h      |  1 +
 src/qemu/qemu_command.c           | 27 ++++++++++++++++++++++++---
 src/qemu/qemu_domain_address.c    |  3 +++
 src/qemu/qemu_validate.c          | 19 +++++++++++++++++++
 src/util/virpci.c                 |  5 +++++
 src/util/virpci.h                 | 11 +++++++++++
 14 files changed, 117 insertions(+), 5 deletions(-)

-- 
2.25.1



More information about the libvir-list mailing list