提交 04e4307d 编写于 作者: D Daniel P. Berrangé

Revert "network: use 'bridge' as actual type instead of 'network'"

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 518026e1.
Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
上级 e007e8ba
......@@ -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)
......
......@@ -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;
......
......@@ -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
......
......@@ -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'/>
......
......@@ -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'/>
......
......@@ -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'/>
......
......@@ -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'/>
......
......@@ -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'/>
......
......@@ -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'/>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册