]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: command: Introduce 'qemuBuildInterfaceConnect' helper
authorPeter Krempa <pkrempa@redhat.com>
Mon, 9 May 2022 12:38:20 +0000 (14:38 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 16 May 2022 07:15:46 +0000 (09:15 +0200)
The helper will aggregate code that is used to connect the network
backend to the corresponding host portion.

This will be used to refactor the duplicated code between the cold-start
and hotplug helper functions.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_command.c
src/qemu/qemu_command.h
src/qemu/qemu_hotplug.c

index 99f753c2f864effa3aef6acd2aadda7f37439b31..bfaca2afef8ad8edffb57ee6d7c88264c9bf5a0c 100644 (file)
@@ -8674,6 +8674,46 @@ qemuInterfaceVhostuserConnect(virCommand *cmd,
     return 0;
 }
 
+
+int
+qemuBuildInterfaceConnect(virDomainObj *vm G_GNUC_UNUSED,
+                          virDomainNetDef *net,
+                          bool standalone G_GNUC_UNUSED)
+{
+    virDomainNetType actualType = virDomainNetGetActualType(net);
+
+    switch (actualType) {
+    case VIR_DOMAIN_NET_TYPE_NETWORK:
+    case VIR_DOMAIN_NET_TYPE_BRIDGE:
+        break;
+
+    case VIR_DOMAIN_NET_TYPE_DIRECT:
+        break;
+
+    case VIR_DOMAIN_NET_TYPE_ETHERNET:
+        break;
+
+    case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
+        break;
+
+    case VIR_DOMAIN_NET_TYPE_VDPA:
+        break;
+
+    case VIR_DOMAIN_NET_TYPE_HOSTDEV:
+    case VIR_DOMAIN_NET_TYPE_USER:
+    case VIR_DOMAIN_NET_TYPE_SERVER:
+    case VIR_DOMAIN_NET_TYPE_CLIENT:
+    case VIR_DOMAIN_NET_TYPE_MCAST:
+    case VIR_DOMAIN_NET_TYPE_INTERNAL:
+    case VIR_DOMAIN_NET_TYPE_UDP:
+    case VIR_DOMAIN_NET_TYPE_LAST:
+        break;
+    }
+
+    return 0;
+}
+
+
 static int
 qemuBuildInterfaceCommandLine(virQEMUDriver *driver,
                               virDomainObj *vm,
@@ -8709,6 +8749,9 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver,
     if (qemuDomainValidateActualNetDef(net, qemuCaps) < 0)
         return -1;
 
+    if (qemuBuildInterfaceConnect(vm, net, standalone) < 0)
+        return -1;
+
     switch (actualType) {
     case VIR_DOMAIN_NET_TYPE_NETWORK:
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
index a653ff7218f3b1742f36f1f3d4ff9cc9961b672d..4b4e0bb4563f8a4abfdd9a3eba67d93695a3b0a0 100644 (file)
@@ -94,6 +94,11 @@ qemuBuildHostNetProps(virDomainNetDef *net,
                       const char *slirpfd,
                       const char *vdpadev);
 
+int
+qemuBuildInterfaceConnect(virDomainObj *vm,
+                          virDomainNetDef *net,
+                          bool standalone);
+
 /* Current, best practice */
 virJSONValue *
 qemuBuildNicDevProps(virDomainDef *def,
index 2923992759654ee5c8074b7d0e5f0248c116876a..221815568b117be122fc5728521258f0c77a52a1 100644 (file)
@@ -1279,6 +1279,9 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver,
      */
     VIR_APPEND_ELEMENT_COPY(vm->def->nets, vm->def->nnets, net);
 
+    if (qemuBuildInterfaceConnect(vm, net, false) < 0)
+         return -1;
+
     switch (actualType) {
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
     case VIR_DOMAIN_NET_TYPE_NETWORK: