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"}
Changes since initial RFC:
1. Added documentation
2. Added test cases and ran test suite
- virtsocketest fails when run with 'ninja test'
3. fixed spaces and uuid string format
4. Used S:vftoken in virJSONValueObjectAdd instead of introducing a conditional
Vivek Kashyap (7):
virpci: Define vf-token
qemu: vf-token capability
conf: vf-token flag
conf: vf-token parsing and formatting
conf: test cases
qemu: validate & generate command line
doc: doc and news
NEWS.rst | 8 +++++
docs/formatdomain.rst | 4 +++
src/conf/device_conf.c | 32 +++++++++++++++--
src/conf/device_conf.h | 3 ++
src/conf/domain_addr.h | 1 +
src/conf/domain_conf.c | 8 +++++
src/conf/schemas/basictypes.rng | 7 ++++
src/libvirt_private.syms | 1 +
src/qemu/qemu_capabilities.c | 3 ++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 13 +++++++
src/qemu/qemu_domain_address.c | 3 ++
src/qemu/qemu_validate.c | 20 +++++++++++
src/util/virpci.c | 7 ++++
src/util/virpci.h | 12 +++++++
.../qemucapabilitiesdata/caps_8.1.0_s390x.xml | 1 +
.../caps_8.1.0_x86_64.xml | 1 +
.../caps_8.2.0_x86_64.xml | 1 +
.../hostdev-vfio-vf-token.x86_64-latest.args | 34 +++++++++++++++++++
.../hostdev-vfio-vf-token.xml | 22 ++++++++++++
tests/qemuxml2argvtest.c | 1 +
21 files changed, 181 insertions(+), 2 deletions(-)
create mode 100644 tests/qemuxml2argvdata/hostdev-vfio-vf-token.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/hostdev-vfio-vf-token.xml
--
2.25.1