提交 3e213d43 编写于 作者: D Daniel P. Berrangé

network: use virNetDevTapReattachBridge API

Switch over to use the new API for re-attaching the bridge device
Reviewed-by: NCole Robinson <crobinso@redhat.com>
Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
上级 de938b92
......@@ -4816,7 +4816,6 @@ networkNotifyActualDevice(virNetworkPtr net,
virNetworkDefPtr netdef;
virNetworkForwardIfDefPtr dev = NULL;
size_t i;
char *master = NULL;
obj = virNetworkObjFindByName(driver->networks, net->name);
if (!obj) {
......@@ -4843,42 +4842,17 @@ networkNotifyActualDevice(virNetworkPtr net,
/* see if we're connected to the correct bridge */
if (netdef->bridge) {
bool useOVS = false;
if (virNetDevGetMaster(iface->ifname, &master) < 0)
/*
* NB: we can't notify the guest of any MTU change anyway,
* so there is no point in trying to learn the actualMTU
* (final arg to virNetDevTapReattachBridge())
*/
if (virNetDevTapReattachBridge(iface->ifname, netdef->bridge,
&iface->mac, dom->uuid,
virDomainNetGetActualVirtPortProfile(iface),
virDomainNetGetActualVlan(iface),
iface->mtu, NULL) < 0) {
goto error;
/* IFLA_MASTER for a tap on an OVS switch is always "ovs-system" */
if (STREQ_NULLABLE(master, "ovs-system")) {
useOVS = true;
VIR_FREE(master);
if (virNetDevOpenvswitchInterfaceGetMaster(iface->ifname, &master) < 0)
goto error;
}
if (STRNEQ_NULLABLE(netdef->bridge, master)) {
/* disconnect from current (incorrect) bridge */
if (master) {
VIR_INFO("Removing %s from %s", iface->ifname, master);
if (useOVS)
ignore_value(virNetDevOpenvswitchRemovePort(master, iface->ifname));
else
ignore_value(virNetDevBridgeRemovePort(master, iface->ifname));
}
/* attach/reattach to correct bridge.
* NB: we can't notify the guest of any MTU change anyway,
* so there is no point in trying to learn the actualMTU
* (final arg to virNetDevTapAttachBridge())
*/
VIR_INFO("Attaching %s to %s", iface->ifname, netdef->bridge);
if (virNetDevTapAttachBridge(iface->ifname, netdef->bridge,
&iface->mac, dom->uuid,
virDomainNetGetActualVirtPortProfile(iface),
virDomainNetGetActualVlan(iface),
iface->mtu, NULL) < 0) {
goto error;
}
}
}
......@@ -5013,7 +4987,6 @@ networkNotifyActualDevice(virNetworkPtr net,
cleanup:
virNetworkObjEndAPI(&obj);
VIR_FREE(master);
return;
error:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册