mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
conf: don't ignore <target dev='blah'/> for macvtap interfaces
The parser had been clearing out *all* suggested device names for type='direct' (aka macvtap) interfaces. All of the code implementing macvtap allows for a user-specified device name, so we should allow it. In the case that an interface name starts with "macvtap" or "macvlan" though, we do still clear it out, just as we do with "vnet" (which is the prefix used for automatically generated tap device names), since those are the prefixes for the names we autogenerate for macvtap and macvlan devices. Resolves: https://bugzilla.redhat.com/1335798
This commit is contained in:
parent
a05400ef55
commit
9cb891141c
@ -5210,9 +5210,9 @@ qemu-kvm -net nic,model=? /dev/null
|
||||
If no target is specified, certain hypervisors will
|
||||
automatically generate a name for the created tun device. This
|
||||
name can be manually specified, however the name <i>should not
|
||||
start with either 'vnet' or 'vif'</i>, which are prefixes
|
||||
reserved by libvirt and certain hypervisors. Manually specified
|
||||
targets using these prefixes may be ignored.
|
||||
start with either 'vnet', 'vif', 'macvtap', or 'macvlan'</i>,
|
||||
which are prefixes reserved by libvirt and certain hypervisors.
|
||||
Manually specified targets using these prefixes may be ignored.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
@ -55,6 +55,7 @@
|
||||
#include "virtpm.h"
|
||||
#include "virstring.h"
|
||||
#include "virnetdev.h"
|
||||
#include "virnetdevmacvlan.h"
|
||||
#include "virhostdev.h"
|
||||
#include "virmdev.h"
|
||||
|
||||
@ -10029,8 +10030,12 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
def->data.direct.linkdev = dev;
|
||||
dev = NULL;
|
||||
|
||||
if (flags & VIR_DOMAIN_DEF_PARSE_INACTIVE)
|
||||
if (ifname &&
|
||||
flags & VIR_DOMAIN_DEF_PARSE_INACTIVE &&
|
||||
(STRPREFIX(ifname, VIR_NET_GENERATED_MACVTAP_PREFIX) ||
|
||||
STRPREFIX(ifname, VIR_NET_GENERATED_MACVTAP_PREFIX))) {
|
||||
VIR_FREE(ifname);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user