]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Revert "virt drivers: don't handle type=network after resolving actual network type"
authorDaniel P. Berrangé <berrange@redhat.com>
Tue, 30 Apr 2019 12:26:25 +0000 (13:26 +0100)
committerDaniel P. Berrangé <berrange@redhat.com>
Tue, 30 Apr 2019 13:42:22 +0000 (14:42 +0100)
This reverts commit 2f5e6502e34d9ddba596fa824b2f2f3504b34a99.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
src/libxl/libxl_conf.c
src/lxc/lxc_driver.c
src/qemu/qemu_command.c
src/qemu/qemu_hotplug.c
src/qemu/qemu_interface.c
src/qemu/qemu_process.c

index 315c14652b376c78230da9a87198b55be4bcf890..766a726ebc094129d246b012d8aa8c51ec7f943c 100644 (file)
@@ -1353,10 +1353,25 @@ libxlMakeNic(virDomainDefPtr def,
             }
             break;
         case VIR_DOMAIN_NET_TYPE_NETWORK:
-            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                           _("Unexpectedly found type=network for actual NIC type"));
-            goto cleanup;
+        {
+            if (!(conn = virConnectOpen("xen:///system")))
+                goto cleanup;
+
+            if (!(network =
+                  virNetworkLookupByName(conn, l_nic->data.network.name))) {
+                goto cleanup;
+            }
+
+            if (l_nic->guestIP.nips > 0) {
+                x_nic->ip = xenMakeIPList(&l_nic->guestIP);
+                if (!x_nic->ip)
+                    goto cleanup;
+            }
 
+            if (!(x_nic->bridge = virNetworkGetBridgeName(network)))
+                goto cleanup;
+            break;
+        }
         case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
         case VIR_DOMAIN_NET_TYPE_USER:
         case VIR_DOMAIN_NET_TYPE_SERVER:
index fbdd33156a139469a5cba90e7d0e2610eb512d30..1980d0804ea6d8bd15529052ace18cb95006b248 100644 (file)
@@ -3848,7 +3848,8 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn,
     actualType = virDomainNetGetActualType(net);
 
     switch (actualType) {
-    case VIR_DOMAIN_NET_TYPE_BRIDGE: {
+    case VIR_DOMAIN_NET_TYPE_BRIDGE:
+    case VIR_DOMAIN_NET_TYPE_NETWORK: {
         const char *brname = virDomainNetGetActualBridgeName(net);
         if (!brname) {
             virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -3866,10 +3867,6 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn,
         if (!(veth = virLXCProcessSetupInterfaceDirect(conn, vm->def, net)))
             goto cleanup;
     }   break;
-    case VIR_DOMAIN_NET_TYPE_NETWORK:
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Unexpectedly found type=network for actual NIC type"));
-        goto cleanup;
     case VIR_DOMAIN_NET_TYPE_USER:
     case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
     case VIR_DOMAIN_NET_TYPE_SERVER:
@@ -3915,6 +3912,7 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn,
     } else if (veth) {
         switch (actualType) {
         case VIR_DOMAIN_NET_TYPE_BRIDGE:
+        case VIR_DOMAIN_NET_TYPE_NETWORK:
         case VIR_DOMAIN_NET_TYPE_ETHERNET:
             ignore_value(virNetDevVethDelete(veth));
             break;
@@ -3923,7 +3921,6 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn,
             ignore_value(virNetDevMacVLanDelete(veth));
             break;
 
-        case VIR_DOMAIN_NET_TYPE_NETWORK:
         case VIR_DOMAIN_NET_TYPE_USER:
         case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
         case VIR_DOMAIN_NET_TYPE_SERVER:
@@ -4355,6 +4352,7 @@ lxcDomainDetachDeviceNetLive(virDomainObjPtr vm,
 
     switch (actualType) {
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
+    case VIR_DOMAIN_NET_TYPE_NETWORK:
     case VIR_DOMAIN_NET_TYPE_ETHERNET:
         if (virNetDevVethDelete(detach->ifname) < 0) {
             virDomainAuditNet(vm, detach, NULL, "detach", false);
@@ -4362,11 +4360,6 @@ lxcDomainDetachDeviceNetLive(virDomainObjPtr vm,
         }
         break;
 
-    case VIR_DOMAIN_NET_TYPE_NETWORK:
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Unexpectedly found type=network for actual NIC type"));
-        goto cleanup;
-
         /* It'd be nice to support this, but with macvlan
          * once assigned to a container nothing exists on
          * the host side. Further the container can change
index bf1fb539b11348403501f4d10b2908ec6c250c61..50b42052677bc3ffc625ce7e328025251da1b983 100644 (file)
@@ -8797,6 +8797,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
     }
 
     switch (actualType) {
+    case VIR_DOMAIN_NET_TYPE_NETWORK:
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
         tapfdSize = net->driver.virtio.queues;
         if (!tapfdSize)
@@ -8874,11 +8875,6 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
 
         break;
 
-    case VIR_DOMAIN_NET_TYPE_NETWORK:
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Unexpectedly found type=network for actual NIC type"));
-        goto cleanup;
-
     case VIR_DOMAIN_NET_TYPE_USER:
     case VIR_DOMAIN_NET_TYPE_SERVER:
     case VIR_DOMAIN_NET_TYPE_CLIENT:
@@ -8895,6 +8891,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
     */
     switch ((virDomainNetType)actualType) {
     case VIR_DOMAIN_NET_TYPE_ETHERNET:
+    case VIR_DOMAIN_NET_TYPE_NETWORK:
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
     case VIR_DOMAIN_NET_TYPE_DIRECT:
     {
@@ -8912,7 +8909,6 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
         break;
     }
 
-    case VIR_DOMAIN_NET_TYPE_NETWORK:
     case VIR_DOMAIN_NET_TYPE_USER:
     case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
     case VIR_DOMAIN_NET_TYPE_SERVER:
index 630be12d548a771f02162fca001ce4398e0d291d..e199368e8a6df418ef06a5eb6d864b1086350d31 100644 (file)
@@ -1450,6 +1450,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
 
     switch (actualType) {
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
+    case VIR_DOMAIN_NET_TYPE_NETWORK:
         tapfdSize = vhostfdSize = net->driver.virtio.queues;
         if (!tapfdSize)
             tapfdSize = vhostfdSize = 1;
@@ -1541,11 +1542,6 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
         /* No preparation needed. */
         break;
 
-    case VIR_DOMAIN_NET_TYPE_NETWORK:
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Unexpectedly found type=network for actual NIC type"));
-        goto cleanup;
-
     case VIR_DOMAIN_NET_TYPE_SERVER:
     case VIR_DOMAIN_NET_TYPE_CLIENT:
     case VIR_DOMAIN_NET_TYPE_MCAST:
@@ -3666,13 +3662,8 @@ qemuDomainChangeNetFilter(virDomainObjPtr vm,
     switch (virDomainNetGetActualType(newdev)) {
     case VIR_DOMAIN_NET_TYPE_ETHERNET:
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
-        break;
-
     case VIR_DOMAIN_NET_TYPE_NETWORK:
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Unexpectedly found type=network for actual NIC type"));
-        return -1;
-
+        break;
     case VIR_DOMAIN_NET_TYPE_USER:
     case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
     case VIR_DOMAIN_NET_TYPE_SERVER:
index 9bb0d70986733d4018e494c27dde78ceb64beddb..c8effa68f4a515ce1b4b8023cfe7946e5ab3ad9a 100644 (file)
@@ -58,6 +58,7 @@ qemuInterfaceStartDevice(virDomainNetDefPtr net)
 
     switch (actualType) {
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
+    case VIR_DOMAIN_NET_TYPE_NETWORK:
         if (virDomainNetGetActualBridgeMACTableManager(net)
             == VIR_NETWORK_BRIDGE_MAC_TABLE_MANAGER_LIBVIRT) {
             /* libvirt is managing the FDB of the bridge this device
@@ -110,11 +111,6 @@ qemuInterfaceStartDevice(virDomainNetDefPtr net)
 
         break;
 
-    case VIR_DOMAIN_NET_TYPE_NETWORK:
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Unexpectedly found type=network for actual NIC type"));
-        goto cleanup;
-
     case VIR_DOMAIN_NET_TYPE_USER:
     case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
     case VIR_DOMAIN_NET_TYPE_SERVER:
@@ -168,6 +164,7 @@ qemuInterfaceStopDevice(virDomainNetDefPtr net)
 
     switch (actualType) {
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
+    case VIR_DOMAIN_NET_TYPE_NETWORK:
         if (virDomainNetGetActualBridgeMACTableManager(net)
             == VIR_NETWORK_BRIDGE_MAC_TABLE_MANAGER_LIBVIRT) {
             /* remove the FDB entries that were added during
@@ -201,11 +198,6 @@ qemuInterfaceStopDevice(virDomainNetDefPtr net)
         break;
     }
 
-    case VIR_DOMAIN_NET_TYPE_NETWORK:
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Unexpectedly found type=network for actual NIC type"));
-        goto cleanup;
-
     case VIR_DOMAIN_NET_TYPE_ETHERNET:
     case VIR_DOMAIN_NET_TYPE_USER:
     case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
index 688e27ab7296a880b4686b6e98dc22f82f09b47d..90466771cd871ba4a0887f0723b203568e2aed8d 100644 (file)
@@ -7302,15 +7302,12 @@ void qemuProcessStop(virQEMUDriverPtr driver,
             }
             break;
         case VIR_DOMAIN_NET_TYPE_BRIDGE:
+        case VIR_DOMAIN_NET_TYPE_NETWORK:
 #ifdef VIR_NETDEV_TAP_REQUIRE_MANUAL_CLEANUP
             if (!(vport && vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH))
                 ignore_value(virNetDevTapDelete(net->ifname, net->backend.tap));
 #endif
             break;
-        case VIR_DOMAIN_NET_TYPE_NETWORK:
-            VIR_WARN("Unexpectedly found type=network for actual NIC type");
-            break;
-
         case VIR_DOMAIN_NET_TYPE_USER:
         case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
         case VIR_DOMAIN_NET_TYPE_SERVER: