mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-23 21:15:20 +00:00
qemu: preserve netdev MAC address during 'domxml-to-native'
The virsh command 'domxml-to-native' (virConnectDomainXMLToNative()) converts all network devices to "type='ethernet'" in order to make it more likely that the generated command could be run directly from a shell (other libvirt network device types end up referencing file descriptors for tap devices assumed to have been created by libvirt, which can't be done in this case). During this conversion, all of the netdev parameters are cleared out, then specific items are filled in after changing the type. The MAC address was not one of these preserved items, and the result was that mac addresses in the generated commandlines were always 00:00:00:00:00:00. This patch saves the mac address before the conversion, then repopulates it afterwards, so the proper mac addresses show up in the commandline. Signed-off-by: Bing Bu Cao <mars@linux.vnet.ibm.com> Signed-off-by: Laine Stump <laine@laine.org>
This commit is contained in:
parent
56022a293c
commit
8e043864ec
@ -5821,6 +5821,7 @@ static char *qemuConnectDomainXMLToNative(virConnectPtr conn,
|
||||
virDomainNetDefPtr net = def->nets[i];
|
||||
int bootIndex = net->info.bootIndex;
|
||||
char *model = net->model;
|
||||
virMacAddr mac = net->mac;
|
||||
|
||||
if (net->type == VIR_DOMAIN_NET_TYPE_NETWORK) {
|
||||
int actualType = virDomainNetGetActualType(net);
|
||||
@ -5880,6 +5881,7 @@ static char *qemuConnectDomainXMLToNative(virConnectPtr conn,
|
||||
VIR_FREE(net->virtPortProfile);
|
||||
net->info.bootIndex = bootIndex;
|
||||
net->model = model;
|
||||
net->mac = mac;
|
||||
}
|
||||
|
||||
monitor_json = virQEMUCapsGet(qemuCaps, QEMU_CAPS_MONITOR_JSON);
|
||||
|
Loading…
x
Reference in New Issue
Block a user