On a Monday in 2021, Michal Privoznik wrote:
So far we assumed that any vhostuser interface is plugged into an OVS bridge and thus 'ovs-vsctl' exists. But this is not always true. In testing scenarios it is possible to create a vhostuser interface with this tool dpdk-testpmd (part of dpdk RPM) which creates/connects to UNIX socket needed for vhostuser. Of course, since there is no OVS then there is no interface name in which case virNetDevOpenvswitchGetVhostuserIfname() should return 0. The rest of APIs that assume OVS are not 'fixed' because we still want them to fail (e.g. getting statistics, plugging interface into an OVS bridge, unplugging it from an OVS bridge, ...). The only API that is fixed is virNetDevOpenvswitchGetVhostuserIfname() because it is called explicitly when starting a guest (and callers are okay if no name was found). The other way to fix this bug seems to be to simply require 'ovs-vsctl' on spec file level, but that is too heavy gun given that vhostuser is used by a small set of our users (assumption made on requirements for vhostuser). Also, this way would drag in yet another dependency for all users (even those who want minimal libvirt). Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1913156 Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> --- src/util/virnetdevopenvswitch.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)
Reviewed-by: Ján Tomko <jtomko@xxxxxxxxxx> Jano
Attachment:
signature.asc
Description: PGP signature