This caused the live XML to report the 'bridge' type instead of the
'network' type, which is a behavioural regression.
It also breaks 'virsh domif-setlink', 'virsh update-device' and
'virsh domiftune'
This reverts commit 518026e15959ab0e19b659a9f2ff502a54946498.
---
src/conf/domain_conf.c | 33 +++----------------
src/network/bridge_driver.c | 11 +++++--
src/qemu/qemu_driver.c | 2 +-
.../disk-secinfo-upgrade-out.xml | 2 +-
.../migration-in-params-in.xml | 2 +-
.../migration-out-nbd-out.xml | 2 +-
.../migration-out-nbd-tls-out.xml | 2 +-
.../migration-out-params-in.xml | 2 +-
tests/qemustatusxml2xmldata/modern-in.xml | 2 +-
9 files changed, 20 insertions(+), 38 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 6331424635..b4fb6cf981 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -5128,19 +5128,6 @@ virDomainNetDefPostParse(virDomainNetDefPtr net)
return -1;
}
- /* Older libvirtd uses actualType==network, but we now
- * just use actualType==bridge, as nothing needs to
- * distinguish the two cases, and this simplifies virt
- * drive code */
- if (net->type == VIR_DOMAIN_NET_TYPE_NETWORK &&
- net->data.network.actual != NULL &&
- net->data.network.actual->type == VIR_DOMAIN_NET_TYPE_NETWORK) {
- char mac[VIR_MAC_STRING_BUFLEN];
- virMacAddrFormat(&net->mac, mac);
- VIR_DEBUG("Updating NIC %s actual type to bridge", mac);
- net->data.network.actual->type = VIR_DOMAIN_NET_TYPE_BRIDGE;
- }
-
return 0;
}
@@ -11281,21 +11268,11 @@ virDomainActualNetDefParseXML(xmlNodePtr node,
}
bandwidth_node = virXPathNode("./bandwidth", ctxt);
- if (bandwidth_node) {
- /* type == NETWORK is legacy config, converted to BRIDGE
- * in post-parse function, but this code runs before
- * post-parse logic, so we must account for configs still
- * using legacy type == NETWORK
- */
- bool allowFloor =
- (actual->type == VIR_DOMAIN_NET_TYPE_NETWORK) ||
- (actual->type == VIR_DOMAIN_NET_TYPE_BRIDGE &&
- actual->data.bridge.brname != NULL);
- if (virNetDevBandwidthParse(&actual->bandwidth,
- bandwidth_node,
- allowFloor) < 0)
- goto error;
- }
+ if (bandwidth_node &&
+ virNetDevBandwidthParse(&actual->bandwidth,
+ bandwidth_node,
+ actual->type == VIR_DOMAIN_NET_TYPE_NETWORK) < 0)
+ goto error;
vlanNode = virXPathNode("./vlan", ctxt);
if (vlanNode && virNetDevVlanParse(vlanNode, ctxt, &actual->vlan) <
0)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 77206b4584..26f7f80418 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -4489,7 +4489,11 @@ networkAllocateActualDevice(virNetworkPtr net,
case VIR_NETWORK_FORWARD_NAT:
case VIR_NETWORK_FORWARD_ROUTE:
case VIR_NETWORK_FORWARD_OPEN:
- iface->data.network.actual->type = VIR_DOMAIN_NET_TYPE_BRIDGE;
+ /* for these forward types, the actual net type really *is*
+ * NETWORK; we just keep the info from the portgroup in
+ * iface->data.network.actual
+ */
+ iface->data.network.actual->type = VIR_DOMAIN_NET_TYPE_NETWORK;
/* we also store the bridge device and macTableManager settings
* in iface->data.network.actual->data.bridge for later use
@@ -5433,8 +5437,9 @@ networkBandwidthGenericChecks(virDomainNetDefPtr iface,
virNetDevBandwidthPtr ifaceBand;
unsigned long long old_floor, new_floor;
- if (virDomainNetGetActualType(iface) != VIR_DOMAIN_NET_TYPE_BRIDGE ||
- iface->data.network.actual->data.bridge.brname == NULL) {
+ if (virDomainNetGetActualType(iface) != VIR_DOMAIN_NET_TYPE_NETWORK &&
+ (virDomainNetGetActualType(iface) != VIR_DOMAIN_NET_TYPE_BRIDGE ||
+ iface->data.network.actual->data.bridge.brname == NULL)) {
/* This is not an interface that's plugged into a network.
* We don't care. Thus from our POV bandwidth change is allowed. */
return false;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index c072bed1ce..b2ac737d1f 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -4567,7 +4567,7 @@ processNicRxFilterChangedEvent(virQEMUDriverPtr driver,
syncNicRxFilterDeviceOptions(def->ifname, guestFilter, hostFilter);
}
- if (virDomainNetGetActualType(def) == VIR_DOMAIN_NET_TYPE_BRIDGE) {
+ if (virDomainNetGetActualType(def) == VIR_DOMAIN_NET_TYPE_NETWORK) {
const char *brname = virDomainNetGetActualBridgeName(def);
/* For libivrt network connections, set the following TUN/TAP network
diff --git a/tests/qemustatusxml2xmldata/disk-secinfo-upgrade-out.xml
b/tests/qemustatusxml2xmldata/disk-secinfo-upgrade-out.xml
index 2ff4e5249c..7a26e93aa4 100644
--- a/tests/qemustatusxml2xmldata/disk-secinfo-upgrade-out.xml
+++ b/tests/qemustatusxml2xmldata/disk-secinfo-upgrade-out.xml
@@ -458,7 +458,7 @@
<interface type='network'>
<mac address='52:54:00:36:bd:3b'/>
<source network='default'/>
- <actual type='bridge'>
+ <actual type='network'>
<source bridge='virbr0'/>
</actual>
<target dev='vnet0'/>
diff --git a/tests/qemustatusxml2xmldata/migration-in-params-in.xml
b/tests/qemustatusxml2xmldata/migration-in-params-in.xml
index 2d72050782..03f18b4f3d 100644
--- a/tests/qemustatusxml2xmldata/migration-in-params-in.xml
+++ b/tests/qemustatusxml2xmldata/migration-in-params-in.xml
@@ -329,7 +329,7 @@
<interface type='network'>
<mac address='52:54:00:59:59:91'/>
<source network='default'/>
- <actual type='bridge'>
+ <actual type='network'>
<source bridge='virbr0'/>
</actual>
<target dev='vnet0'/>
diff --git a/tests/qemustatusxml2xmldata/migration-out-nbd-out.xml
b/tests/qemustatusxml2xmldata/migration-out-nbd-out.xml
index b7b03c380a..315d8e4c1a 100644
--- a/tests/qemustatusxml2xmldata/migration-out-nbd-out.xml
+++ b/tests/qemustatusxml2xmldata/migration-out-nbd-out.xml
@@ -370,7 +370,7 @@
<interface type='network'>
<mac address='52:54:00:36:bd:3b'/>
<source network='default'/>
- <actual type='bridge'>
+ <actual type='network'>
<source bridge='virbr0'/>
</actual>
<target dev='vnet0'/>
diff --git a/tests/qemustatusxml2xmldata/migration-out-nbd-tls-out.xml
b/tests/qemustatusxml2xmldata/migration-out-nbd-tls-out.xml
index ec79ef7304..869f37d488 100644
--- a/tests/qemustatusxml2xmldata/migration-out-nbd-tls-out.xml
+++ b/tests/qemustatusxml2xmldata/migration-out-nbd-tls-out.xml
@@ -407,7 +407,7 @@
<interface type='network'>
<mac address='52:54:00:36:bd:3b'/>
<source network='default'/>
- <actual type='bridge'>
+ <actual type='network'>
<source bridge='virbr0'/>
</actual>
<target dev='vnet0'/>
diff --git a/tests/qemustatusxml2xmldata/migration-out-params-in.xml
b/tests/qemustatusxml2xmldata/migration-out-params-in.xml
index cdcde09fe8..ae2064830a 100644
--- a/tests/qemustatusxml2xmldata/migration-out-params-in.xml
+++ b/tests/qemustatusxml2xmldata/migration-out-params-in.xml
@@ -343,7 +343,7 @@
<interface type='network'>
<mac address='52:54:00:59:59:91'/>
<source network='default'/>
- <actual type='bridge'>
+ <actual type='network'>
<source bridge='virbr0'/>
</actual>
<target dev='vnet0'/>
diff --git a/tests/qemustatusxml2xmldata/modern-in.xml
b/tests/qemustatusxml2xmldata/modern-in.xml
index f0afbff3c4..08f7f40761 100644
--- a/tests/qemustatusxml2xmldata/modern-in.xml
+++ b/tests/qemustatusxml2xmldata/modern-in.xml
@@ -390,7 +390,7 @@
<interface type='network'>
<mac address='52:54:00:36:bd:3b'/>
<source network='default'/>
- <actual type='bridge'>
+ <actual type='network'>
<source bridge='virbr0'/>
</actual>
<target dev='vnet0'/>
--
2.20.1