On 2/11/21 8:57 AM, Laine Stump wrote:
This is explained in excruciating detail in Patch 5, but in short,
allowing the <teaming> element to be in a plain <hostdev> will permit
someone who is running libvirt unprivileged, or in a container with no
access to a PF device, to use the <teaming> feature, which
encapsulates a lot of functionality related to assigning an SRIOV
network device to a guest as a part of a failover bond device (the
other device in the pair is an emulated virtio NIC), which in turn
permits the guest to be migrated by transparently unplugging the SRIOV
NIC prior to migration, and plugging a new one in after migration is
completed.
(Previously we required <interface type='hostdev'> for this feature,
but that type of device needs to send netlink messages to the PF of
the SRIOV VF that's being assigned, and that simply isn't possible
sometimes.)
Laine Stump (7):
conf: make teaming info an official type
conf: use virDomainNetTeamingInfoPtr instead of
virDomainNetTeamingInfo
conf: separate Parse/Format functions for virDomainNetTeamingInfo
schema: separate teaming element definition from interface element
conf: parse/format <teaming> element in plain <hostdev>
qemu: plug <teaming> config from <hostdev> into qemu commandline
news: document support for <teaming> in <hostdev>
NEWS.rst | 6 ++
docs/formatdomain.rst | 51 +++++++++++
docs/schemas/domaincommon.rng | 42 +++++----
src/conf/domain_conf.c | 87 +++++++++++++------
src/conf/domain_conf.h | 13 ++-
src/conf/domain_validate.c | 45 +++++++---
src/conf/virconftypes.h | 3 +
src/libvirt_private.syms | 1 +
src/qemu/qemu_command.c | 17 ++--
src/qemu/qemu_domain.c | 2 +-
src/qemu/qemu_migration.c | 4 +-
src/qemu/qemu_validate.c | 42 ++++-----
.../net-virtio-teaming-hostdev.args | 40 +++++++++
.../net-virtio-teaming-hostdev.xml | 48 ++++++++++
tests/qemuxml2argvtest.c | 3 +
.../net-virtio-teaming-hostdev.xml | 64 ++++++++++++++
tests/qemuxml2xmltest.c | 3 +
17 files changed, 384 insertions(+), 87 deletions(-)
create mode 100644 tests/qemuxml2argvdata/net-virtio-teaming-hostdev.args
create mode 100644 tests/qemuxml2argvdata/net-virtio-teaming-hostdev.xml
create mode 100644 tests/qemuxml2xmloutdata/net-virtio-teaming-hostdev.xml
Reviewed-by: Michal Privoznik <mprivozn(a)redhat.com>
Michal