mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-09 23:10:08 +00:00
qemu_domain: Set 'passt' net backend if 'default' is unsupported
It may happen that QEMU is compiled without SLIRP but with support for passt. In such case it is acceptable to alter user provided configuration and switch backend to passt as it offers all the features as SLIRP. Resolves: https://issues.redhat.com/browse/RHEL-45518 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
bd6060d1c3
commit
8f34fd0c4c
@ -5975,12 +5975,25 @@ qemuDomainDeviceNetDefPostParse(virDomainNetDef *net,
|
||||
virQEMUCaps *qemuCaps)
|
||||
{
|
||||
if (net->type == VIR_DOMAIN_NET_TYPE_VDPA &&
|
||||
!virDomainNetGetModelString(net))
|
||||
!virDomainNetGetModelString(net)) {
|
||||
net->model = VIR_DOMAIN_NET_MODEL_VIRTIO;
|
||||
else if (net->type != VIR_DOMAIN_NET_TYPE_HOSTDEV &&
|
||||
} else if (net->type != VIR_DOMAIN_NET_TYPE_HOSTDEV &&
|
||||
!virDomainNetGetModelString(net) &&
|
||||
virDomainNetResolveActualType(net) != VIR_DOMAIN_NET_TYPE_HOSTDEV)
|
||||
virDomainNetResolveActualType(net) != VIR_DOMAIN_NET_TYPE_HOSTDEV) {
|
||||
net->model = qemuDomainDefaultNetModel(def, qemuCaps);
|
||||
}
|
||||
|
||||
if (net->type == VIR_DOMAIN_NET_TYPE_USER &&
|
||||
net->backend.type == VIR_DOMAIN_NET_BACKEND_DEFAULT) {
|
||||
virDomainCapsDeviceNet netCaps = { };
|
||||
|
||||
virQEMUCapsFillDomainDeviceNetCaps(qemuCaps, &netCaps);
|
||||
|
||||
if (!VIR_DOMAIN_CAPS_ENUM_IS_SET(netCaps.backendType, VIR_DOMAIN_NET_BACKEND_DEFAULT) &&
|
||||
VIR_DOMAIN_CAPS_ENUM_IS_SET(netCaps.backendType, VIR_DOMAIN_NET_BACKEND_PASST)) {
|
||||
net->backend.type = VIR_DOMAIN_NET_BACKEND_PASST;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user