Apologies for the delay in posting the second version of this series.
This is the first portion of an effort to support persistent mediated devices
with libvirt. This first series simply enables creating and destroying
non-persistent mediated devices via the virNodeDeviceCreateXML() and
virNodeDeviceDestroy() functions. The 'mdevctl' utility[1] provides the backend
implementation.
Changes in v2:
- review findings fixed
- Added Unit testing
- passed JSON config via stdin instead of a temporary file (see portability
note in patch 5)
[1]
https://github.com/mdevctl/mdevctl
Jonathon Jongsma (10):
nodedev: factor out nodeDeviceHasCapability()
nodedev: add support for mdev attributes
nodedev: refactor nodeDeviceFindNewDevice()
nodedev: store mdev UUID in mdev caps
nodedev: add mdev support to virNodeDeviceCreateXML()
nodedev: Build a non-loadable driver lib
nodedev: Add testing for 'mdevctl start'
nodedev: add mdev support to virNodeDeviceDestroy()
nodedev: Add testing for 'mdevctl stop'
docs: note node device fields that are read-only
build-aux/syntax-check.mk | 2 +-
docs/formatnode.html.in | 16 +-
docs/schemas/nodedev.rng | 6 +
libvirt.spec.in | 2 +
m4/virt-external-programs.m4 | 3 +
src/conf/node_device_conf.c | 60 ++-
src/conf/node_device_conf.h | 3 +
src/conf/virnodedeviceobj.c | 34 ++
src/conf/virnodedeviceobj.h | 3 +
src/libvirt_private.syms | 3 +
src/node_device/Makefile.inc.am | 23 +-
src/node_device/node_device_driver.c | 377 ++++++++++++++++--
src/node_device/node_device_driver.h | 9 +
src/node_device/node_device_udev.c | 5 +-
src/util/virmdev.c | 12 +
src/util/virmdev.h | 11 +
tests/Makefile.am | 14 +
...019_36ea_4111_8f0a_8c9a70e21366-start.argv | 1 +
...019_36ea_4111_8f0a_8c9a70e21366-start.json | 1 +
...d39_495e_4243_ad9f_beb3f14c23d9-start.argv | 1 +
...d39_495e_4243_ad9f_beb3f14c23d9-start.json | 1 +
...916_1ca8_49ac_b176_871d16c13076-start.argv | 1 +
...916_1ca8_49ac_b176_871d16c13076-start.json | 1 +
tests/nodedevmdevctldata/mdevctl-stop.argv | 1 +
tests/nodedevmdevctltest.c | 300 ++++++++++++++
...v_d069d019_36ea_4111_8f0a_8c9a70e21366.xml | 8 +
...v_d2441d39_495e_4243_ad9f_beb3f14c23d9.xml | 10 +
...v_fedc4916_1ca8_49ac_b176_871d16c13076.xml | 9 +
28 files changed, 862 insertions(+), 55 deletions(-)
create mode 100644
tests/nodedevmdevctldata/mdev_d069d019_36ea_4111_8f0a_8c9a70e21366-start.argv
create mode 100644
tests/nodedevmdevctldata/mdev_d069d019_36ea_4111_8f0a_8c9a70e21366-start.json
create mode 100644
tests/nodedevmdevctldata/mdev_d2441d39_495e_4243_ad9f_beb3f14c23d9-start.argv
create mode 100644
tests/nodedevmdevctldata/mdev_d2441d39_495e_4243_ad9f_beb3f14c23d9-start.json
create mode 100644
tests/nodedevmdevctldata/mdev_fedc4916_1ca8_49ac_b176_871d16c13076-start.argv
create mode 100644
tests/nodedevmdevctldata/mdev_fedc4916_1ca8_49ac_b176_871d16c13076-start.json
create mode 100644 tests/nodedevmdevctldata/mdevctl-stop.argv
create mode 100644 tests/nodedevmdevctltest.c
create mode 100644 tests/nodedevschemadata/mdev_d069d019_36ea_4111_8f0a_8c9a70e21366.xml
create mode 100644 tests/nodedevschemadata/mdev_d2441d39_495e_4243_ad9f_beb3f14c23d9.xml
create mode 100644 tests/nodedevschemadata/mdev_fedc4916_1ca8_49ac_b176_871d16c13076.xml
--
2.21.3