[libvirt] [PATCH 4/8] Deprecate QEMU_CAPS_NETDEV

Ján Tomko jtomko at redhat.com
Thu Mar 29 00:50:21 UTC 2018


This makes qemuDomainSupportsNetdev identical to
qemuDomainSupportsNicdev and leaves some code in
qemuDomainAttachNetDevice to be cleaned up later.

Signed-off-by: Ján Tomko <jtomko at redhat.com>
---
 src/qemu/qemu_capabilities.c                       |  13 +-
 src/qemu/qemu_capabilities.h                       |   2 +-
 src/qemu/qemu_domain.c                             |   4 +-
 src/qemu/qemu_hotplug.c                            | 120 +++++-----------
 src/qemu/qemu_process.c                            |   6 -
 tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml    |   1 -
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml    |   1 -
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml    |   1 -
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml    |   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml    |   1 -
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |   1 -
 tests/qemuhelptest.c                               |   2 -
 .../aarch64-aavmf-virtio-mmio.args                 |   4 +-
 tests/qemuxml2argvdata/aarch64-kvm-32-on-64.args   |   4 +-
 .../aarch64-video-virtio-gpu-pci.args              |   6 +-
 .../aarch64-virt-2.6-virtio-pci-default.args       |   5 +-
 .../qemuxml2argvdata/aarch64-virt-default-nic.args |   4 +-
 tests/qemuxml2argvdata/aarch64-virt-virtio.args    |   4 +-
 .../aarch64-virtio-pci-default.args                |   5 +-
 .../aarch64-virtio-pci-manual-addresses.args       |  10 +-
 tests/qemuxml2argvdata/arm-vexpressa9-virtio.args  |   4 +-
 tests/qemuxml2argvdata/arm-virt-virtio.args        |   4 +-
 tests/qemuxml2argvdata/boot-complex-bootindex.args |  11 +-
 tests/qemuxml2argvdata/boot-complex.args           |  10 +-
 tests/qemuxml2argvdata/boot-order.args             |   6 +-
 tests/qemuxml2argvdata/boot-strict.args            |  11 +-
 tests/qemuxml2argvdata/controller-order.args       |   5 +-
 tests/qemuxml2argvdata/disk-copy_on_read.args      |   6 +-
 tests/qemuxml2argvdata/disk-ioeventfd.args         |   4 +-
 tests/qemuxml2argvdata/event_idx.args              |   6 +-
 tests/qemuxml2argvdata/graphics-spice-timeout.args |   5 +-
 .../qemuxml2argvdata/intel-iommu-caching-mode.args |   5 +-
 .../machine-loadparm-multiple-disks-nets-s390.args |  11 +-
 .../machine-loadparm-net-s390.args                 |   6 +-
 tests/qemuxml2argvdata/net-client.args             |   5 +-
 tests/qemuxml2argvdata/net-eth-hostip.args         |   5 +-
 tests/qemuxml2argvdata/net-eth-ifname.args         |   5 +-
 tests/qemuxml2argvdata/net-eth-names.args          |   9 +-
 tests/qemuxml2argvdata/net-eth.args                |   5 +-
 tests/qemuxml2argvdata/net-mcast.args              |   5 +-
 tests/qemuxml2argvdata/net-server.args             |   5 +-
 tests/qemuxml2argvdata/net-udp.args                |   6 +-
 tests/qemuxml2argvdata/net-user.args               |   5 +-
 tests/qemuxml2argvdata/net-virtio-ccw.args         |  10 +-
 tests/qemuxml2argvdata/net-virtio-device.args      |   6 +-
 .../net-virtio-disable-offloads.args               |   4 +-
 .../qemuxml2argvdata/net-virtio-rxtxqueuesize.args |   6 +-
 tests/qemuxml2argvdata/net-virtio-s390.args        |   4 +-
 tests/qemuxml2argvdata/net-virtio.args             |   5 +-
 tests/qemuxml2argvdata/pci-bridge.args             | 151 +++++++++++---------
 tests/qemuxml2argvdata/pci-expander-bus.args       | 151 +++++++++++---------
 tests/qemuxml2argvdata/pci-rom.args                |  12 +-
 tests/qemuxml2argvdata/pcie-expander-bus.args      | 155 ++++++++++++---------
 tests/qemuxml2argvdata/q35-pci-force-address.args  |   5 +-
 tests/qemuxml2argvdata/user-aliases.args           |  18 +--
 tests/qemuxml2argvdata/virtio-lun.args             |   5 +-
 tests/qemuxml2argvdata/virtio-options.args         |   6 +-
 tests/qemuxml2argvtest.c                           |  20 +--
 tests/qemuxml2xmltest.c                            |   8 +-
 81 files changed, 456 insertions(+), 471 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 61663864f..28210fdbe 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1348,14 +1348,8 @@ virQEMUCapsComputeCmdFlags(const char *help,
         virQEMUCapsSet(qemuCaps, QEMU_CAPS_SECCOMP_SANDBOX);
 
     if ((netdev = strstr(help, "-netdev"))) {
-        /* Disable -netdev on 0.12 since although it exists,
-         * the corresponding netdev_add/remove monitor commands
-         * do not, and we need them to be able to do hotplug. */
-        if (version >= 13000) {
-            if (strstr(netdev, "bridge"))
-                virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV_BRIDGE);
-            virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV);
-        }
+        if (strstr(netdev, "bridge"))
+            virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV_BRIDGE);
     }
 
     if (strstr(help, "-sdl"))
@@ -1391,8 +1385,6 @@ virQEMUCapsComputeCmdFlags(const char *help,
     /* Starting with qemu 0.15 and newer, upstream qemu no longer
      * promises to keep the human interface stable, but requests that
      * we use QMP (the JSON interface) for everything. */
-    if (version >= 15000)
-        virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV);
 #endif
 
     if (version >= 1001000) {
@@ -4467,7 +4459,6 @@ virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
     virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_SERIAL);
     virQEMUCapsSet(qemuCaps, QEMU_CAPS_MONITOR_JSON);
     virQEMUCapsSet(qemuCaps, QEMU_CAPS_SDL);
-    virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV);
     virQEMUCapsSet(qemuCaps, QEMU_CAPS_RTC);
     virQEMUCapsSet(qemuCaps, QEMU_CAPS_VHOST_NET);
     virQEMUCapsSet(qemuCaps, QEMU_CAPS_NODEFCONFIG);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 32527ce78..532024e72 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -87,7 +87,7 @@ typedef enum {
     X_QEMU_CAPS_DEVICE, /* Is the -device arg available */
     QEMU_CAPS_SDL, /* Is the new -sdl arg available */
     X_QEMU_CAPS_SMP_TOPOLOGY, /* -smp has sockets/cores/threads */
-    QEMU_CAPS_NETDEV, /* -netdev flag & netdev_add/remove */
+    X_QEMU_CAPS_NETDEV, /* -netdev flag & netdev_add/remove */
 
     /* 30 */
     QEMU_CAPS_RTC, /* The -rtc flag for clock options */
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 580e0f830..6b22f9dc3 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -9111,12 +9111,12 @@ qemuDomainSupportsNicdev(virDomainDefPtr def,
 
 bool
 qemuDomainSupportsNetdev(virDomainDefPtr def,
-                         virQEMUCapsPtr qemuCaps,
+                         virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED,
                          virDomainNetDefPtr net)
 {
     if (!qemuDomainSupportsNicdev(def, net))
         return false;
-    return virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV);
+    return true;
 }
 
 bool
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 49af4d4ff..7f5c68e0c 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1029,18 +1029,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
 
     releaseaddr = true;
 
-    if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV)) {
-        vlan = -1;
-    } else {
-        vlan = qemuDomainNetVLAN(net);
-
-        if (vlan < 0) {
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                           _("Unable to attach network devices without vlan"));
-            goto cleanup;
-        }
-    }
-
+    vlan = -1;
     if (VIR_ALLOC_N(tapfdName, tapfdSize) < 0 ||
         VIR_ALLOC_N(vhostfdName, vhostfdSize) < 0)
         goto cleanup;
@@ -1055,19 +1044,11 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
             goto cleanup;
     }
 
-    if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV)) {
-        if (!(netstr = qemuBuildHostNetStr(net, driver,
-                                           ',', -1,
-                                           tapfdName, tapfdSize,
-                                           vhostfdName, vhostfdSize)))
-            goto cleanup;
-    } else {
-        if (!(netstr = qemuBuildHostNetStr(net, driver,
-                                           ' ', vlan,
-                                           tapfdName, tapfdSize,
-                                           vhostfdName, vhostfdSize)))
-            goto cleanup;
-    }
+    if (!(netstr = qemuBuildHostNetStr(net, driver,
+                                       ',', -1,
+                                       tapfdName, tapfdSize,
+                                       vhostfdName, vhostfdSize)))
+        goto cleanup;
 
     qemuDomainObjEnterMonitor(driver, vm);
 
@@ -1080,25 +1061,14 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
         charDevPlugged = true;
     }
 
-    if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV)) {
-        if (qemuMonitorAddNetdev(priv->mon, netstr,
-                                 tapfd, tapfdName, tapfdSize,
-                                 vhostfd, vhostfdName, vhostfdSize) < 0) {
-            ignore_value(qemuDomainObjExitMonitor(driver, vm));
-            virDomainAuditNet(vm, NULL, net, "attach", false);
-            goto try_remove;
-        }
-        netdevPlugged = true;
-    } else {
-        if (qemuMonitorAddHostNetwork(priv->mon, netstr,
-                                      tapfd, tapfdName, tapfdSize,
-                                      vhostfd, vhostfdName, vhostfdSize) < 0) {
-            ignore_value(qemuDomainObjExitMonitor(driver, vm));
-            virDomainAuditNet(vm, NULL, net, "attach", false);
-            goto try_remove;
-        }
-        hostPlugged = true;
+    if (qemuMonitorAddNetdev(priv->mon, netstr,
+                             tapfd, tapfdName, tapfdSize,
+                             vhostfd, vhostfdName, vhostfdSize) < 0) {
+        ignore_value(qemuDomainObjExitMonitor(driver, vm));
+        virDomainAuditNet(vm, NULL, net, "attach", false);
+        goto try_remove;
     }
+    netdevPlugged = true;
 
     if (qemuDomainObjExitMonitor(driver, vm) < 0)
         goto cleanup;
@@ -1129,15 +1099,10 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
         } else {
             qemuDomainObjEnterMonitor(driver, vm);
 
-            if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV)) {
-                if (qemuMonitorSetLink(priv->mon, net->info.alias, VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN) < 0) {
-                    ignore_value(qemuDomainObjExitMonitor(driver, vm));
-                    virDomainAuditNet(vm, NULL, net, "attach", false);
-                    goto try_remove;
-                }
-            } else {
-                virReportError(VIR_ERR_OPERATION_FAILED, "%s",
-                               _("setting of link state not supported: Link is up"));
+            if (qemuMonitorSetLink(priv->mon, net->info.alias, VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN) < 0) {
+                ignore_value(qemuDomainObjExitMonitor(driver, vm));
+                virDomainAuditNet(vm, NULL, net, "attach", false);
+                goto try_remove;
             }
 
             if (qemuDomainObjExitMonitor(driver, vm) < 0)
@@ -1205,22 +1170,18 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
 
     virErrorPreserveLast(&originalError);
     if (vlan < 0) {
-        if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV)) {
-            char *netdev_name;
-            if (virAsprintf(&netdev_name, "host%s", net->info.alias) >= 0) {
-                qemuDomainObjEnterMonitor(driver, vm);
-                if (charDevPlugged &&
-                    qemuMonitorDetachCharDev(priv->mon, charDevAlias) < 0)
-                    VIR_WARN("Failed to remove associated chardev %s", charDevAlias);
-                if (netdevPlugged &&
-                    qemuMonitorRemoveNetdev(priv->mon, netdev_name) < 0)
-                    VIR_WARN("Failed to remove network backend for netdev %s",
-                             netdev_name);
-                ignore_value(qemuDomainObjExitMonitor(driver, vm));
-                VIR_FREE(netdev_name);
-            }
-        } else {
-            VIR_WARN("Unable to remove network backend");
+        char *netdev_name;
+        if (virAsprintf(&netdev_name, "host%s", net->info.alias) >= 0) {
+            qemuDomainObjEnterMonitor(driver, vm);
+            if (charDevPlugged &&
+                qemuMonitorDetachCharDev(priv->mon, charDevAlias) < 0)
+                VIR_WARN("Failed to remove associated chardev %s", charDevAlias);
+            if (netdevPlugged &&
+                qemuMonitorRemoveNetdev(priv->mon, netdev_name) < 0)
+                VIR_WARN("Failed to remove network backend for netdev %s",
+                         netdev_name);
+            ignore_value(qemuDomainObjExitMonitor(driver, vm));
+            VIR_FREE(netdev_name);
         }
     } else {
         char *hostnet_name;
@@ -4098,26 +4059,11 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver,
 
 
     qemuDomainObjEnterMonitor(driver, vm);
-    if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV)) {
-        if (qemuMonitorRemoveNetdev(priv->mon, hostnet_name) < 0) {
-            if (qemuDomainObjExitMonitor(driver, vm) < 0)
-                goto cleanup;
-            virDomainAuditNet(vm, net, NULL, "detach", false);
-            goto cleanup;
-        }
-    } else {
-        int vlan;
-        if ((vlan = qemuDomainNetVLAN(net)) < 0 ||
-            qemuMonitorRemoveHostNetwork(priv->mon, vlan, hostnet_name) < 0) {
-            if (vlan < 0) {
-                virReportError(VIR_ERR_OPERATION_FAILED, "%s",
-                               _("unable to determine original VLAN"));
-            }
-            if (qemuDomainObjExitMonitor(driver, vm) < 0)
-                goto cleanup;
-            virDomainAuditNet(vm, net, NULL, "detach", false);
+    if (qemuMonitorRemoveNetdev(priv->mon, hostnet_name) < 0) {
+        if (qemuDomainObjExitMonitor(driver, vm) < 0)
             goto cleanup;
-        }
+        virDomainAuditNet(vm, net, NULL, "detach", false);
+        goto cleanup;
     }
 
     if (actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 1afb71f11..13c9e5a56 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -2377,12 +2377,6 @@ qemuProcessSetLinkStates(virQEMUDriverPtr driver,
 
             VIR_DEBUG("Setting link state: %s", def->nets[i]->info.alias);
 
-            if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV)) {
-                virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
-                               _("Setting of link state is not supported by this qemu"));
-                goto cleanup;
-            }
-
             rv = qemuMonitorSetLink(priv->mon,
                                     def->nets[i]->info.alias,
                                     VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN);
diff --git a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml
index 55b98fda0..bf32867a6 100644
--- a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml
index 48281548a..3b667498a 100644
--- a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml
index f6e8f588f..f84b7b9bb 100644
--- a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index 109fa2ada..983c2f75c 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 6da349861..751c9c005 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index 9c1cc7b67..792cdf77c 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 73cd42409..4be6ccf18 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
index 88b3e9edb..91458b593 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
index 846d8989e..7e843887a 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
index 6110c227a..f13e09cb2 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
index 5689532c8..dca324aa1 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
index 0ca9c7a82..f1fe5aa07 100644
--- a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
index c4f03d253..1270d3d63 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
index c3051be2f..0292fcd49 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
index 015e97beb..0798c5512 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
@@ -8,7 +8,6 @@
   <flag name='enable-kvm'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
index 90bea5d6b..f4865b2b2 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
index 0fec3cd0a..39ddfdeba 100644
--- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
index d6bb7cecd..8bf11d86b 100644
--- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml
index 0172055e5..46c095fd9 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
index 3072c479c..a69c3e383 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
index e2b064a52..fcbccb54f 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
index cc01bf729..b82d3ebce 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
index 61eedfb9e..30bb7d787 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
index b33d92f21..f701835a3 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
index f6cc85c57..096bc32f9 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
index 75236851a..4e1d10a4d 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
index 17fe8f215..0e8272885 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='nodefconfig'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
index e26fe5db5..1a39067b9 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
@@ -8,7 +8,6 @@
   <flag name='drive-serial'/>
   <flag name='monitor-json'/>
   <flag name='sdl'/>
-  <flag name='netdev'/>
   <flag name='rtc'/>
   <flag name='vhost-net'/>
   <flag name='no-hpet'/>
diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c
index 78d489e73..cf495e132 100644
--- a/tests/qemuhelptest.c
+++ b/tests/qemuhelptest.c
@@ -152,7 +152,6 @@ mymain(void)
             QEMU_CAPS_SDL,
             QEMU_CAPS_ENABLE_KVM,
             QEMU_CAPS_MONITOR_JSON,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_RTC,
             QEMU_CAPS_VHOST_NET,
             QEMU_CAPS_NO_HPET,
@@ -222,7 +221,6 @@ mymain(void)
             QEMU_CAPS_SDL,
             QEMU_CAPS_ENABLE_KVM,
             QEMU_CAPS_MONITOR_JSON,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_RTC,
             QEMU_CAPS_VHOST_NET,
             QEMU_CAPS_NO_HPET,
diff --git a/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args b/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args
index ffb37a55a..f192dd006 100644
--- a/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args
+++ b/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.args
@@ -27,8 +27,8 @@ path=/tmp/lib/domain--1-aarch64test/monitor.sock,server,nowait \
 -device virtio-serial-device,id=virtio-serial0 \
 -drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
 -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
--device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-device,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37 \
 -chardev pty,id=charconsole0 \
 -device virtconsole,chardev=charconsole0,id=console0 \
 -device virtio-balloon-device,id=balloon0 \
diff --git a/tests/qemuxml2argvdata/aarch64-kvm-32-on-64.args b/tests/qemuxml2argvdata/aarch64-kvm-32-on-64.args
index 693b48931..143d0bcbe 100644
--- a/tests/qemuxml2argvdata/aarch64-kvm-32-on-64.args
+++ b/tests/qemuxml2argvdata/aarch64-kvm-32-on-64.args
@@ -24,7 +24,7 @@ server,nowait \
 -append 'console=ttyAMA0,115200n8 rw root=/dev/vda rootwait physmap.enabled=0' \
 -drive file=/arm.raw,format=raw,if=none,id=drive-virtio-disk0 \
 -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
--device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-device,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37 \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0
diff --git a/tests/qemuxml2argvdata/aarch64-video-virtio-gpu-pci.args b/tests/qemuxml2argvdata/aarch64-video-virtio-gpu-pci.args
index 5730646da..14a57e537 100644
--- a/tests/qemuxml2argvdata/aarch64-video-virtio-gpu-pci.args
+++ b/tests/qemuxml2argvdata/aarch64-video-virtio-gpu-pci.args
@@ -23,7 +23,7 @@ path=/tmp/lib/domain--1-aarch64-vgpu/monitor.sock,server,nowait \
 addr=0x1 \
 -device ioh3420,port=0x9,chassis=2,id=pci.2,bus=pcie.0,multifunction=on,\
 addr=0x1.0x1 \
--device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:73:34:53,bus=pci.1,addr=0x0,\
-bootindex=1 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:73:34:53,bus=pci.1,\
+addr=0x0,bootindex=1 \
 -device virtio-gpu-pci,id=video0,bus=pci.2,addr=0x0
diff --git a/tests/qemuxml2argvdata/aarch64-virt-2.6-virtio-pci-default.args b/tests/qemuxml2argvdata/aarch64-virt-2.6-virtio-pci-default.args
index 662259e22..1d6db44a3 100644
--- a/tests/qemuxml2argvdata/aarch64-virt-2.6-virtio-pci-default.args
+++ b/tests/qemuxml2argvdata/aarch64-virt-2.6-virtio-pci-default.args
@@ -31,8 +31,9 @@ path=/tmp/lib/domain--1-aarch64test/monitor.sock,server,nowait \
 -drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
 -device virtio-blk-pci,bus=pci.2,addr=0x3,drive=drive-virtio-disk0,\
 id=virtio-disk0 \
--device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:09:a4:37,bus=pci.2,addr=0x1 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37,bus=pci.2,\
+addr=0x1 \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0 \
 -chardev pty,id=charconsole1 \
diff --git a/tests/qemuxml2argvdata/aarch64-virt-default-nic.args b/tests/qemuxml2argvdata/aarch64-virt-default-nic.args
index f27fe0a1d..fed5f0944 100644
--- a/tests/qemuxml2argvdata/aarch64-virt-default-nic.args
+++ b/tests/qemuxml2argvdata/aarch64-virt-default-nic.args
@@ -23,5 +23,5 @@ path=/tmp/lib/domain--1-aarch64-virt-default/monitor.sock,server,nowait \
 -kernel /aarch64.kernel \
 -initrd /aarch64.initrd \
 -append console=ttyAMA0 \
--device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
--net user,vlan=0,name=hostnet0
+-netdev user,id=hostnet0 \
+-device virtio-net-device,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37
diff --git a/tests/qemuxml2argvdata/aarch64-virt-virtio.args b/tests/qemuxml2argvdata/aarch64-virt-virtio.args
index b1f7e6ea5..537446121 100644
--- a/tests/qemuxml2argvdata/aarch64-virt-virtio.args
+++ b/tests/qemuxml2argvdata/aarch64-virt-virtio.args
@@ -27,8 +27,8 @@ path=/tmp/lib/domain--1-aarch64test/monitor.sock,server,nowait \
 -device virtio-serial-device,id=virtio-serial0 \
 -drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
 -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
--device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-device,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37 \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0 \
 -chardev pty,id=charconsole1 \
diff --git a/tests/qemuxml2argvdata/aarch64-virtio-pci-default.args b/tests/qemuxml2argvdata/aarch64-virtio-pci-default.args
index 28ec390a1..955dddf51 100644
--- a/tests/qemuxml2argvdata/aarch64-virtio-pci-default.args
+++ b/tests/qemuxml2argvdata/aarch64-virtio-pci-default.args
@@ -35,8 +35,9 @@ addr=0x1 \
 -drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
 -device virtio-blk-pci,bus=pci.3,addr=0x0,drive=drive-virtio-disk0,\
 id=virtio-disk0 \
--device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:09:a4:37,bus=pci.1,addr=0x0 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37,bus=pci.1,\
+addr=0x0 \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0 \
 -chardev pty,id=charconsole1 \
diff --git a/tests/qemuxml2argvdata/aarch64-virtio-pci-manual-addresses.args b/tests/qemuxml2argvdata/aarch64-virtio-pci-manual-addresses.args
index d3a68eae4..ab2288b4e 100644
--- a/tests/qemuxml2argvdata/aarch64-virtio-pci-manual-addresses.args
+++ b/tests/qemuxml2argvdata/aarch64-virtio-pci-manual-addresses.args
@@ -31,7 +31,9 @@ path=/tmp/lib/domain--1-aarch64test/monitor.sock,server,nowait \
 -drive file=/aarch64.raw,format=raw,if=none,id=drive-scsi0-0-0-0 \
 -device scsi-disk,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\
 drive=drive-scsi0-0-0-0,id=scsi0-0-0-0 \
--device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:09:a4:37,bus=pci.3,addr=0x2 \
--net user,vlan=0,name=hostnet0 \
--device virtio-net-pci,vlan=1,id=net1,mac=52:54:00:09:a4:38,bus=pci.2,addr=0x1 \
--net user,vlan=1,name=hostnet1
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37,bus=pci.3,\
+addr=0x2 \
+-netdev user,id=hostnet1 \
+-device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:09:a4:38,bus=pci.2,\
+addr=0x1
diff --git a/tests/qemuxml2argvdata/arm-vexpressa9-virtio.args b/tests/qemuxml2argvdata/arm-vexpressa9-virtio.args
index 850775177..49b7cf477 100644
--- a/tests/qemuxml2argvdata/arm-vexpressa9-virtio.args
+++ b/tests/qemuxml2argvdata/arm-vexpressa9-virtio.args
@@ -27,8 +27,8 @@ server,nowait \
 -usb \
 -drive file=/arm.raw,format=raw,if=none,id=drive-virtio-disk0 \
 -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
--device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-device,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37 \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0 \
 -chardev pty,id=charconsole1 \
diff --git a/tests/qemuxml2argvdata/arm-virt-virtio.args b/tests/qemuxml2argvdata/arm-virt-virtio.args
index f051839dd..c33b4f0fb 100644
--- a/tests/qemuxml2argvdata/arm-virt-virtio.args
+++ b/tests/qemuxml2argvdata/arm-virt-virtio.args
@@ -25,8 +25,8 @@ server,nowait \
 -device virtio-serial-device,id=virtio-serial0 \
 -drive file=/arm.raw,format=raw,if=none,id=drive-virtio-disk0 \
 -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
--device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-device,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37 \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0 \
 -chardev pty,id=charconsole1 \
diff --git a/tests/qemuxml2argvdata/boot-complex-bootindex.args b/tests/qemuxml2argvdata/boot-complex-bootindex.args
index 639acbd7b..994829829 100644
--- a/tests/qemuxml2argvdata/boot-complex-bootindex.args
+++ b/tests/qemuxml2argvdata/boot-complex-bootindex.args
@@ -37,8 +37,9 @@ bootindex=1 \
 -global isa-fdc.bootindexA=4 \
 -drive file=/dev/fd1,format=raw,if=none,id=drive-fdc0-0-1 \
 -global isa-fdc.driveB=drive-fdc0-0-1 \
--device virtio-net-pci,vlan=0,id=net0,mac=00:11:22:33:44:11,bus=pci.0,addr=0x3,\
-bootindex=2 \
--net user,vlan=0,name=hostnet0 \
--device virtio-net-pci,vlan=1,id=net1,mac=00:11:22:33:44:22,bus=pci.0,addr=0x4 \
--net user,vlan=1,name=hostnet1
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:11:22:33:44:11,bus=pci.0,\
+addr=0x3,bootindex=2 \
+-netdev user,id=hostnet1 \
+-device virtio-net-pci,netdev=hostnet1,id=net1,mac=00:11:22:33:44:22,bus=pci.0,\
+addr=0x4
diff --git a/tests/qemuxml2argvdata/boot-complex.args b/tests/qemuxml2argvdata/boot-complex.args
index b7a2fc119..68fcfe2bf 100644
--- a/tests/qemuxml2argvdata/boot-complex.args
+++ b/tests/qemuxml2argvdata/boot-complex.args
@@ -36,7 +36,9 @@ readonly=on \
 -global isa-fdc.driveA=drive-fdc0-0-0 \
 -drive file=/dev/fd1,format=raw,if=none,id=drive-fdc0-0-1 \
 -global isa-fdc.driveB=drive-fdc0-0-1 \
--device virtio-net-pci,vlan=0,id=net0,mac=00:11:22:33:44:11,bus=pci.0,addr=0x3 \
--net user,vlan=0,name=hostnet0 \
--device virtio-net-pci,vlan=1,id=net1,mac=00:11:22:33:44:22,bus=pci.0,addr=0x4 \
--net user,vlan=1,name=hostnet1
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:11:22:33:44:11,bus=pci.0,\
+addr=0x3 \
+-netdev user,id=hostnet1 \
+-device virtio-net-pci,netdev=hostnet1,id=net1,mac=00:11:22:33:44:22,bus=pci.0,\
+addr=0x4
diff --git a/tests/qemuxml2argvdata/boot-order.args b/tests/qemuxml2argvdata/boot-order.args
index 8c366f1dd..5c78e3acb 100644
--- a/tests/qemuxml2argvdata/boot-order.args
+++ b/tests/qemuxml2argvdata/boot-order.args
@@ -31,7 +31,7 @@ id=virtio-disk0,bootindex=3 \
 -drive file=/dev/null,format=raw,if=none,id=drive-fdc0-0-1 \
 -global isa-fdc.driveB=drive-fdc0-0-1 \
 -global isa-fdc.bootindexB=4 \
--device virtio-net-pci,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3,\
-bootindex=2 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,\
+addr=0x3,bootindex=2 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
diff --git a/tests/qemuxml2argvdata/boot-strict.args b/tests/qemuxml2argvdata/boot-strict.args
index 9aeb80199..221a43805 100644
--- a/tests/qemuxml2argvdata/boot-strict.args
+++ b/tests/qemuxml2argvdata/boot-strict.args
@@ -38,8 +38,9 @@ bootindex=1 \
 -global isa-fdc.bootindexA=4 \
 -drive file=/dev/fd1,format=raw,if=none,id=drive-fdc0-0-1 \
 -global isa-fdc.driveB=drive-fdc0-0-1 \
--device virtio-net-pci,vlan=0,id=net0,mac=00:11:22:33:44:11,bus=pci.0,addr=0x3,\
-bootindex=2 \
--net user,vlan=0,name=hostnet0 \
--device virtio-net-pci,vlan=1,id=net1,mac=00:11:22:33:44:22,bus=pci.0,addr=0x4 \
--net user,vlan=1,name=hostnet1
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:11:22:33:44:11,bus=pci.0,\
+addr=0x3,bootindex=2 \
+-netdev user,id=hostnet1 \
+-device virtio-net-pci,netdev=hostnet1,id=net1,mac=00:11:22:33:44:22,bus=pci.0,\
+addr=0x4
diff --git a/tests/qemuxml2argvdata/controller-order.args b/tests/qemuxml2argvdata/controller-order.args
index 70a8ba9ce..ec421f12e 100644
--- a/tests/qemuxml2argvdata/controller-order.args
+++ b/tests/qemuxml2argvdata/controller-order.args
@@ -28,8 +28,9 @@ id=virtio-disk0 \
 -drive file=/tmp/Fedora-17-x86_64-Live-Desktop.iso,format=raw,if=none,\
 id=drive-ide0-1-0,media=cdrom,readonly=on \
 -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
--device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:4d:4b:19,bus=pci.0,addr=0x3 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:4d:4b:19,bus=pci.0,\
+addr=0x3 \
 -chardev spicevmc,id=charsmartcard0,name=smartcard \
 -device ccid-card-passthru,chardev=charsmartcard0,id=smartcard0,bus=ccid0.0 \
 -chardev pty,id=charserial0 \
diff --git a/tests/qemuxml2argvdata/disk-copy_on_read.args b/tests/qemuxml2argvdata/disk-copy_on_read.args
index 8353a1573..9dc06054e 100644
--- a/tests/qemuxml2argvdata/disk-copy_on_read.args
+++ b/tests/qemuxml2argvdata/disk-copy_on_read.args
@@ -27,7 +27,7 @@ id=virtio-disk0 \
 -drive file=/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso,format=raw,if=none,\
 id=drive-ide0-1-0,media=cdrom,readonly=on \
 -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
--device virtio-net-pci,tx=bh,vlan=0,id=net0,mac=52:54:00:e5:48:58,bus=pci.0,\
-addr=0x3 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,tx=bh,netdev=hostnet0,id=net0,mac=52:54:00:e5:48:58,\
+bus=pci.0,addr=0x3 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
diff --git a/tests/qemuxml2argvdata/disk-ioeventfd.args b/tests/qemuxml2argvdata/disk-ioeventfd.args
index e752b3874..cf8ec0564 100644
--- a/tests/qemuxml2argvdata/disk-ioeventfd.args
+++ b/tests/qemuxml2argvdata/disk-ioeventfd.args
@@ -27,7 +27,7 @@ drive=drive-virtio-disk0,id=virtio-disk0 \
 -drive file=/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso,format=raw,if=none,\
 id=drive-ide0-1-0,media=cdrom,readonly=on \
 -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
--device virtio-net-pci,tx=bh,ioeventfd=off,vlan=0,id=net0,\
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,tx=bh,ioeventfd=off,netdev=hostnet0,id=net0,\
 mac=52:54:00:e5:48:58,bus=pci.0,addr=0x3 \
--net user,vlan=0,name=hostnet0 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
diff --git a/tests/qemuxml2argvdata/event_idx.args b/tests/qemuxml2argvdata/event_idx.args
index ff7b0b6ea..74da03987 100644
--- a/tests/qemuxml2argvdata/event_idx.args
+++ b/tests/qemuxml2argvdata/event_idx.args
@@ -27,7 +27,7 @@ drive=drive-virtio-disk0,id=virtio-disk0 \
 -drive file=/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso,format=raw,if=none,\
 id=drive-ide0-1-0,media=cdrom,readonly=on \
 -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
--device virtio-net-pci,event_idx=off,vlan=0,id=net0,mac=52:54:00:e5:48:58,\
-bus=pci.0,addr=0x3 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,event_idx=off,netdev=hostnet0,id=net0,\
+mac=52:54:00:e5:48:58,bus=pci.0,addr=0x3 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
diff --git a/tests/qemuxml2argvdata/graphics-spice-timeout.args b/tests/qemuxml2argvdata/graphics-spice-timeout.args
index 06a124576..5ce92b3c0 100644
--- a/tests/qemuxml2argvdata/graphics-spice-timeout.args
+++ b/tests/qemuxml2argvdata/graphics-spice-timeout.args
@@ -27,8 +27,9 @@ id=virtio-disk0 \
 -drive file=/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso,format=raw,if=none,\
 id=drive-ide0-1-0,media=cdrom,readonly=on \
 -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
--device rtl8139,vlan=0,id=net0,mac=52:54:00:71:70:89,bus=pci.0,addr=0x7 \
--net tap,fd=3,vlan=0,name=hostnet0 \
+-netdev tap,fd=3,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:71:70:89,bus=pci.0,\
+addr=0x7 \
 -device usb-tablet,id=input0,bus=usb.0,port=1 \
 -spice port=5900,addr=127.0.0.1 \
 -vga std \
diff --git a/tests/qemuxml2argvdata/intel-iommu-caching-mode.args b/tests/qemuxml2argvdata/intel-iommu-caching-mode.args
index 81feecfcf..ad868f853 100644
--- a/tests/qemuxml2argvdata/intel-iommu-caching-mode.args
+++ b/tests/qemuxml2argvdata/intel-iommu-caching-mode.args
@@ -23,5 +23,6 @@ server,nowait \
 -device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x0 \
 -device ioh3420,port=0x10,chassis=3,id=pci.3,bus=pcie.0,addr=0x2 \
 -device ich9-usb-ehci1,id=usb,bus=pci.2,addr=0x2.0x7 \
--device rtl8139,vlan=0,id=net0,mac=52:54:00:ab:0c:5c,bus=pci.2,addr=0x1 \
--net user,vlan=0,name=hostnet0
+-netdev user,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:ab:0c:5c,bus=pci.2,\
+addr=0x1
diff --git a/tests/qemuxml2argvdata/machine-loadparm-multiple-disks-nets-s390.args b/tests/qemuxml2argvdata/machine-loadparm-multiple-disks-nets-s390.args
index 46b553086..9c5f71e2a 100644
--- a/tests/qemuxml2argvdata/machine-loadparm-multiple-disks-nets-s390.args
+++ b/tests/qemuxml2argvdata/machine-loadparm-multiple-disks-nets-s390.args
@@ -22,9 +22,10 @@ id=virtio-disk0,bootindex=1 \
 -drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-virtio-disk1 \
 -device virtio-blk-ccw,devno=fe.0.0003,drive=drive-virtio-disk1,\
 id=virtio-disk1,bootindex=3 \
--device virtio-net-ccw,vlan=0,id=net0,mac=00:11:22:33:44:54,devno=fe.0.0000,\
-bootindex=2 \
--net user,vlan=0,name=hostnet0 \
--device virtio-net-ccw,vlan=1,id=net1,mac=00:11:22:33:42:36,devno=fe.0.0004 \
--net user,vlan=1,name=hostnet1 \
+-netdev user,id=hostnet0 \
+-device virtio-net-ccw,netdev=hostnet0,id=net0,mac=00:11:22:33:44:54,\
+devno=fe.0.0000,bootindex=2 \
+-netdev user,id=hostnet1 \
+-device virtio-net-ccw,netdev=hostnet1,id=net1,mac=00:11:22:33:42:36,\
+devno=fe.0.0004 \
 -device virtio-balloon-ccw,id=balloon0,devno=fe.0.0001
diff --git a/tests/qemuxml2argvdata/machine-loadparm-net-s390.args b/tests/qemuxml2argvdata/machine-loadparm-net-s390.args
index c9d8ff7f1..686d99ce8 100644
--- a/tests/qemuxml2argvdata/machine-loadparm-net-s390.args
+++ b/tests/qemuxml2argvdata/machine-loadparm-net-s390.args
@@ -16,7 +16,7 @@ QEMU_AUDIO_DRV=none \
 -chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\
 server,nowait \
 -mon chardev=charmonitor,id=monitor,mode=readline \
--device virtio-net-ccw,vlan=0,id=net0,mac=00:11:22:33:44:54,devno=fe.0.0000,\
-bootindex=1 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-ccw,netdev=hostnet0,id=net0,mac=00:11:22:33:44:54,\
+devno=fe.0.0000,bootindex=1 \
 -device virtio-balloon-ccw,id=balloon0,devno=fe.0.0001
diff --git a/tests/qemuxml2argvdata/net-client.args b/tests/qemuxml2argvdata/net-client.args
index 93c0ca0bf..73740d8d5 100644
--- a/tests/qemuxml2argvdata/net-client.args
+++ b/tests/qemuxml2argvdata/net-client.args
@@ -21,6 +21,7 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device rtl8139,vlan=0,id=net0,mac=52:54:00:8c:b9:05,bus=pci.0,addr=0x3 \
--net socket,connect=192.168.0.1:5558,vlan=0,name=hostnet0 \
+-netdev socket,connect=192.168.0.1:5558,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:8c:b9:05,bus=pci.0,\
+addr=0x3 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/net-eth-hostip.args b/tests/qemuxml2argvdata/net-eth-hostip.args
index bc70ef598..a7a8a49d3 100644
--- a/tests/qemuxml2argvdata/net-eth-hostip.args
+++ b/tests/qemuxml2argvdata/net-eth-hostip.args
@@ -21,5 +21,6 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device rtl8139,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3 \
--net tap,fd=3,vlan=0,name=hostnet0
+-netdev tap,fd=3,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,\
+addr=0x3
diff --git a/tests/qemuxml2argvdata/net-eth-ifname.args b/tests/qemuxml2argvdata/net-eth-ifname.args
index bc70ef598..a7a8a49d3 100644
--- a/tests/qemuxml2argvdata/net-eth-ifname.args
+++ b/tests/qemuxml2argvdata/net-eth-ifname.args
@@ -21,5 +21,6 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device rtl8139,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3 \
--net tap,fd=3,vlan=0,name=hostnet0
+-netdev tap,fd=3,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,\
+addr=0x3
diff --git a/tests/qemuxml2argvdata/net-eth-names.args b/tests/qemuxml2argvdata/net-eth-names.args
index a47725063..432d6393c 100644
--- a/tests/qemuxml2argvdata/net-eth-names.args
+++ b/tests/qemuxml2argvdata/net-eth-names.args
@@ -21,8 +21,9 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device rtl8139,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3 \
--net tap,fd=3,vlan=0,name=hostnet0 \
--device e1000,vlan=1,id=net1,mac=00:11:22:33:44:56,bus=pci.0,addr=0x4 \
--net tap,fd=3,vlan=1,name=hostnet1 \
+-netdev tap,fd=3,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,\
+addr=0x3 \
+-netdev tap,fd=3,id=hostnet1 \
+-device e1000,netdev=hostnet1,id=net1,mac=00:11:22:33:44:56,bus=pci.0,addr=0x4 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
diff --git a/tests/qemuxml2argvdata/net-eth.args b/tests/qemuxml2argvdata/net-eth.args
index bc70ef598..a7a8a49d3 100644
--- a/tests/qemuxml2argvdata/net-eth.args
+++ b/tests/qemuxml2argvdata/net-eth.args
@@ -21,5 +21,6 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device rtl8139,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3 \
--net tap,fd=3,vlan=0,name=hostnet0
+-netdev tap,fd=3,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,\
+addr=0x3
diff --git a/tests/qemuxml2argvdata/net-mcast.args b/tests/qemuxml2argvdata/net-mcast.args
index 707e258cf..a749220b5 100644
--- a/tests/qemuxml2argvdata/net-mcast.args
+++ b/tests/qemuxml2argvdata/net-mcast.args
@@ -21,6 +21,7 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device rtl8139,vlan=0,id=net0,mac=52:54:00:8c:b9:05,bus=pci.0,addr=0x3 \
--net socket,mcast=192.0.0.1:5558,vlan=0,name=hostnet0 \
+-netdev socket,mcast=192.0.0.1:5558,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:8c:b9:05,bus=pci.0,\
+addr=0x3 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/net-server.args b/tests/qemuxml2argvdata/net-server.args
index f849d2fd6..d1432c2a0 100644
--- a/tests/qemuxml2argvdata/net-server.args
+++ b/tests/qemuxml2argvdata/net-server.args
@@ -21,6 +21,7 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device rtl8139,vlan=0,id=net0,mac=52:54:00:8c:b9:05,bus=pci.0,addr=0x3 \
--net socket,listen=192.168.0.1:5558,vlan=0,name=hostnet0 \
+-netdev socket,listen=192.168.0.1:5558,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:8c:b9:05,bus=pci.0,\
+addr=0x3 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/net-udp.args b/tests/qemuxml2argvdata/net-udp.args
index 064204ce3..170816a47 100644
--- a/tests/qemuxml2argvdata/net-udp.args
+++ b/tests/qemuxml2argvdata/net-udp.args
@@ -21,7 +21,7 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device rtl8139,vlan=0,id=net0,mac=52:54:00:8c:b9:05,bus=pci.0,addr=0x3 \
--net socket,udp=192.168.10.1:5555,localaddr=192.168.10.1:5556,vlan=0,\
-name=hostnet0 \
+-netdev socket,udp=192.168.10.1:5555,localaddr=192.168.10.1:5556,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:8c:b9:05,bus=pci.0,\
+addr=0x3 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/net-user.args b/tests/qemuxml2argvdata/net-user.args
index 3dc94b9b5..604987d7d 100644
--- a/tests/qemuxml2argvdata/net-user.args
+++ b/tests/qemuxml2argvdata/net-user.args
@@ -21,5 +21,6 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device rtl8139,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3 \
--net user,vlan=0,name=hostnet0
+-netdev user,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,\
+addr=0x3
diff --git a/tests/qemuxml2argvdata/net-virtio-ccw.args b/tests/qemuxml2argvdata/net-virtio-ccw.args
index 663e0680e..87de274fa 100644
--- a/tests/qemuxml2argvdata/net-virtio-ccw.args
+++ b/tests/qemuxml2argvdata/net-virtio-ccw.args
@@ -17,8 +17,10 @@ QEMU_AUDIO_DRV=none \
 server,nowait \
 -mon chardev=charmonitor,id=monitor,mode=readline \
 -boot c \
--device virtio-net-ccw,vlan=0,id=net0,mac=00:11:22:33:44:55,devno=fe.0.0001 \
--net user,vlan=0,name=hostnet0 \
--device virtio-net-ccw,vlan=1,id=net1,mac=00:11:22:33:44:54,devno=fe.0.0000 \
--net user,vlan=1,name=hostnet1 \
+-netdev user,id=hostnet0 \
+-device virtio-net-ccw,netdev=hostnet0,id=net0,mac=00:11:22:33:44:55,\
+devno=fe.0.0001 \
+-netdev user,id=hostnet1 \
+-device virtio-net-ccw,netdev=hostnet1,id=net1,mac=00:11:22:33:44:54,\
+devno=fe.0.0000 \
 -device virtio-balloon-ccw,id=balloon0,devno=fe.0.000a
diff --git a/tests/qemuxml2argvdata/net-virtio-device.args b/tests/qemuxml2argvdata/net-virtio-device.args
index 24e1456b7..8068bd72f 100644
--- a/tests/qemuxml2argvdata/net-virtio-device.args
+++ b/tests/qemuxml2argvdata/net-virtio-device.args
@@ -22,7 +22,7 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device virtio-net-pci,tx=bh,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,\
-addr=0x3 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,tx=bh,netdev=hostnet0,id=net0,mac=00:11:22:33:44:55,\
+bus=pci.0,addr=0x3 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/net-virtio-disable-offloads.args b/tests/qemuxml2argvdata/net-virtio-disable-offloads.args
index 2ec4ccd3a..21747a2e6 100644
--- a/tests/qemuxml2argvdata/net-virtio-disable-offloads.args
+++ b/tests/qemuxml2argvdata/net-virtio-disable-offloads.args
@@ -22,9 +22,9 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest7,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
+-netdev user,id=hostnet0 \
 -device virtio-net-pci,csum=off,gso=off,host_tso4=off,host_tso6=off,\
 host_ecn=off,host_ufo=off,mrg_rxbuf=off,guest_csum=off,guest_tso4=off,\
-guest_tso6=off,guest_ecn=off,guest_ufo=off,vlan=0,id=net0,\
+guest_tso6=off,guest_ecn=off,guest_ufo=off,netdev=hostnet0,id=net0,\
 mac=00:22:44:66:88:aa,bus=pci.0,addr=0x3 \
--net user,vlan=0,name=hostnet0 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/net-virtio-rxtxqueuesize.args b/tests/qemuxml2argvdata/net-virtio-rxtxqueuesize.args
index c78da3d17..e8ebdef45 100644
--- a/tests/qemuxml2argvdata/net-virtio-rxtxqueuesize.args
+++ b/tests/qemuxml2argvdata/net-virtio-rxtxqueuesize.args
@@ -21,7 +21,7 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device virtio-net-pci,rx_queue_size=512,tx_queue_size=1024,vlan=0,id=net0,\
-mac=00:11:22:33:44:55,bus=pci.0,addr=0x3 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,rx_queue_size=512,tx_queue_size=1024,netdev=hostnet0,\
+id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/net-virtio-s390.args b/tests/qemuxml2argvdata/net-virtio-s390.args
index 616fe5751..7b4cd2353 100644
--- a/tests/qemuxml2argvdata/net-virtio-s390.args
+++ b/tests/qemuxml2argvdata/net-virtio-s390.args
@@ -17,5 +17,5 @@ QEMU_AUDIO_DRV=none \
 server,nowait \
 -mon chardev=charmonitor,id=monitor,mode=readline \
 -boot c \
--device virtio-net-s390,vlan=0,id=net0,mac=00:11:22:33:44:55 \
--net user,vlan=0,name=hostnet0
+-netdev user,id=hostnet0 \
+-device virtio-net-s390,netdev=hostnet0,id=net0,mac=00:11:22:33:44:55
diff --git a/tests/qemuxml2argvdata/net-virtio.args b/tests/qemuxml2argvdata/net-virtio.args
index 4adef1811..7f906efed 100644
--- a/tests/qemuxml2argvdata/net-virtio.args
+++ b/tests/qemuxml2argvdata/net-virtio.args
@@ -21,5 +21,6 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device virtio-net-pci,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3 \
--net user,vlan=0,name=hostnet0
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,\
+addr=0x3
diff --git a/tests/qemuxml2argvdata/pci-bridge.args b/tests/qemuxml2argvdata/pci-bridge.args
index 1d2a0428e..789b572d7 100644
--- a/tests/qemuxml2argvdata/pci-bridge.args
+++ b/tests/qemuxml2argvdata/pci-bridge.args
@@ -22,70 +22,93 @@ server,nowait \
 -drive file=/var/iso/f18kde.iso,format=raw,if=none,id=drive-ide0-1-0,\
 media=cdrom,readonly=on \
 -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
--device rtl8139,vlan=0,id=net0,mac=52:54:00:f1:95:51,bus=pci.0,addr=0x5 \
--net user,vlan=0,name=hostnet0 \
--device e1000,vlan=1,id=net1,mac=52:54:00:5c:c6:1a,bus=pci.0,addr=0x7 \
--net user,vlan=1,name=hostnet1 \
--device e1000,vlan=2,id=net2,mac=52:54:00:39:97:ac,bus=pci.0,addr=0x8 \
--net user,vlan=2,name=hostnet2 \
--device e1000,vlan=3,id=net3,mac=52:54:00:45:28:cb,bus=pci.0,addr=0x9 \
--net user,vlan=3,name=hostnet3 \
--device e1000,vlan=4,id=net4,mac=52:54:00:ee:b9:a8,bus=pci.0,addr=0xa \
--net user,vlan=4,name=hostnet4 \
--device e1000,vlan=5,id=net5,mac=52:54:00:a9:f7:17,bus=pci.0,addr=0xb \
--net user,vlan=5,name=hostnet5 \
--device e1000,vlan=6,id=net6,mac=52:54:00:df:2b:f3,bus=pci.0,addr=0xc \
--net user,vlan=6,name=hostnet6 \
--device e1000,vlan=7,id=net7,mac=52:54:00:78:94:b4,bus=pci.0,addr=0xd \
--net user,vlan=7,name=hostnet7 \
--device e1000,vlan=8,id=net8,mac=52:54:00:6b:9b:06,bus=pci.0,addr=0xe \
--net user,vlan=8,name=hostnet8 \
--device e1000,vlan=9,id=net9,mac=52:54:00:17:df:bc,bus=pci.0,addr=0xf \
--net user,vlan=9,name=hostnet9 \
--device rtl8139,vlan=10,id=net10,mac=52:54:00:3b:d0:51,bus=pci.0,addr=0x10 \
--net user,vlan=10,name=hostnet10 \
--device e1000,vlan=11,id=net11,mac=52:54:00:8d:2d:17,bus=pci.0,addr=0x11 \
--net user,vlan=11,name=hostnet11 \
--device e1000,vlan=12,id=net12,mac=52:54:00:a7:66:af,bus=pci.0,addr=0x12 \
--net user,vlan=12,name=hostnet12 \
--device e1000,vlan=13,id=net13,mac=52:54:00:54:ab:d7,bus=pci.0,addr=0x13 \
--net user,vlan=13,name=hostnet13 \
--device e1000,vlan=14,id=net14,mac=52:54:00:1f:99:90,bus=pci.0,addr=0x14 \
--net user,vlan=14,name=hostnet14 \
--device e1000,vlan=15,id=net15,mac=52:54:00:c8:43:87,bus=pci.0,addr=0x15 \
--net user,vlan=15,name=hostnet15 \
--device e1000,vlan=16,id=net16,mac=52:54:00:df:22:b2,bus=pci.0,addr=0x16 \
--net user,vlan=16,name=hostnet16 \
--device e1000,vlan=17,id=net17,mac=52:54:00:d2:9a:47,bus=pci.0,addr=0x17 \
--net user,vlan=17,name=hostnet17 \
--device e1000,vlan=18,id=net18,mac=52:54:00:86:05:e2,bus=pci.0,addr=0x18 \
--net user,vlan=18,name=hostnet18 \
--device e1000,vlan=19,id=net19,mac=52:54:00:8c:1c:c2,bus=pci.0,addr=0x19 \
--net user,vlan=19,name=hostnet19 \
--device e1000,vlan=20,id=net20,mac=52:54:00:48:58:92,bus=pci.0,addr=0x1a \
--net user,vlan=20,name=hostnet20 \
--device e1000,vlan=21,id=net21,mac=52:54:00:99:e5:bf,bus=pci.0,addr=0x1b \
--net user,vlan=21,name=hostnet21 \
--device e1000,vlan=22,id=net22,mac=52:54:00:b1:8c:25,bus=pci.0,addr=0x1c \
--net user,vlan=22,name=hostnet22 \
--device e1000,vlan=23,id=net23,mac=52:54:00:60:e0:d0,bus=pci.0,addr=0x1d \
--net user,vlan=23,name=hostnet23 \
--device e1000,vlan=24,id=net24,mac=52:54:00:37:00:6a,bus=pci.0,addr=0x1e \
--net user,vlan=24,name=hostnet24 \
--device e1000,vlan=25,id=net25,mac=52:54:00:c7:c8:ad,bus=pci.0,addr=0x1f \
--net user,vlan=25,name=hostnet25 \
--device e1000,vlan=26,id=net26,mac=52:54:00:4e:a7:cf,bus=pci.1,addr=0x1 \
--net user,vlan=26,name=hostnet26 \
--device e1000,vlan=27,id=net27,mac=52:54:00:00:79:69,bus=pci.1,addr=0x2 \
--net user,vlan=27,name=hostnet27 \
--device e1000,vlan=28,id=net28,mac=52:54:00:47:00:6f,bus=pci.1,addr=0x3 \
--net user,vlan=28,name=hostnet28 \
--device e1000,vlan=29,id=net29,mac=52:54:00:2a:8c:8b,bus=pci.1,addr=0x4 \
--net user,vlan=29,name=hostnet29 \
--device e1000,vlan=30,id=net30,mac=52:54:00:ec:d5:e3,bus=pci.1,addr=0x5 \
--net user,vlan=30,name=hostnet30 \
--device e1000,vlan=31,id=net31,mac=52:54:00:7e:6e:c8,bus=pci.1,addr=0x6 \
--net user,vlan=31,name=hostnet31 \
+-netdev user,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:f1:95:51,bus=pci.0,\
+addr=0x5 \
+-netdev user,id=hostnet1 \
+-device e1000,netdev=hostnet1,id=net1,mac=52:54:00:5c:c6:1a,bus=pci.0,addr=0x7 \
+-netdev user,id=hostnet2 \
+-device e1000,netdev=hostnet2,id=net2,mac=52:54:00:39:97:ac,bus=pci.0,addr=0x8 \
+-netdev user,id=hostnet3 \
+-device e1000,netdev=hostnet3,id=net3,mac=52:54:00:45:28:cb,bus=pci.0,addr=0x9 \
+-netdev user,id=hostnet4 \
+-device e1000,netdev=hostnet4,id=net4,mac=52:54:00:ee:b9:a8,bus=pci.0,addr=0xa \
+-netdev user,id=hostnet5 \
+-device e1000,netdev=hostnet5,id=net5,mac=52:54:00:a9:f7:17,bus=pci.0,addr=0xb \
+-netdev user,id=hostnet6 \
+-device e1000,netdev=hostnet6,id=net6,mac=52:54:00:df:2b:f3,bus=pci.0,addr=0xc \
+-netdev user,id=hostnet7 \
+-device e1000,netdev=hostnet7,id=net7,mac=52:54:00:78:94:b4,bus=pci.0,addr=0xd \
+-netdev user,id=hostnet8 \
+-device e1000,netdev=hostnet8,id=net8,mac=52:54:00:6b:9b:06,bus=pci.0,addr=0xe \
+-netdev user,id=hostnet9 \
+-device e1000,netdev=hostnet9,id=net9,mac=52:54:00:17:df:bc,bus=pci.0,addr=0xf \
+-netdev user,id=hostnet10 \
+-device rtl8139,netdev=hostnet10,id=net10,mac=52:54:00:3b:d0:51,bus=pci.0,\
+addr=0x10 \
+-netdev user,id=hostnet11 \
+-device e1000,netdev=hostnet11,id=net11,mac=52:54:00:8d:2d:17,bus=pci.0,\
+addr=0x11 \
+-netdev user,id=hostnet12 \
+-device e1000,netdev=hostnet12,id=net12,mac=52:54:00:a7:66:af,bus=pci.0,\
+addr=0x12 \
+-netdev user,id=hostnet13 \
+-device e1000,netdev=hostnet13,id=net13,mac=52:54:00:54:ab:d7,bus=pci.0,\
+addr=0x13 \
+-netdev user,id=hostnet14 \
+-device e1000,netdev=hostnet14,id=net14,mac=52:54:00:1f:99:90,bus=pci.0,\
+addr=0x14 \
+-netdev user,id=hostnet15 \
+-device e1000,netdev=hostnet15,id=net15,mac=52:54:00:c8:43:87,bus=pci.0,\
+addr=0x15 \
+-netdev user,id=hostnet16 \
+-device e1000,netdev=hostnet16,id=net16,mac=52:54:00:df:22:b2,bus=pci.0,\
+addr=0x16 \
+-netdev user,id=hostnet17 \
+-device e1000,netdev=hostnet17,id=net17,mac=52:54:00:d2:9a:47,bus=pci.0,\
+addr=0x17 \
+-netdev user,id=hostnet18 \
+-device e1000,netdev=hostnet18,id=net18,mac=52:54:00:86:05:e2,bus=pci.0,\
+addr=0x18 \
+-netdev user,id=hostnet19 \
+-device e1000,netdev=hostnet19,id=net19,mac=52:54:00:8c:1c:c2,bus=pci.0,\
+addr=0x19 \
+-netdev user,id=hostnet20 \
+-device e1000,netdev=hostnet20,id=net20,mac=52:54:00:48:58:92,bus=pci.0,\
+addr=0x1a \
+-netdev user,id=hostnet21 \
+-device e1000,netdev=hostnet21,id=net21,mac=52:54:00:99:e5:bf,bus=pci.0,\
+addr=0x1b \
+-netdev user,id=hostnet22 \
+-device e1000,netdev=hostnet22,id=net22,mac=52:54:00:b1:8c:25,bus=pci.0,\
+addr=0x1c \
+-netdev user,id=hostnet23 \
+-device e1000,netdev=hostnet23,id=net23,mac=52:54:00:60:e0:d0,bus=pci.0,\
+addr=0x1d \
+-netdev user,id=hostnet24 \
+-device e1000,netdev=hostnet24,id=net24,mac=52:54:00:37:00:6a,bus=pci.0,\
+addr=0x1e \
+-netdev user,id=hostnet25 \
+-device e1000,netdev=hostnet25,id=net25,mac=52:54:00:c7:c8:ad,bus=pci.0,\
+addr=0x1f \
+-netdev user,id=hostnet26 \
+-device e1000,netdev=hostnet26,id=net26,mac=52:54:00:4e:a7:cf,bus=pci.1,\
+addr=0x1 \
+-netdev user,id=hostnet27 \
+-device e1000,netdev=hostnet27,id=net27,mac=52:54:00:00:79:69,bus=pci.1,\
+addr=0x2 \
+-netdev user,id=hostnet28 \
+-device e1000,netdev=hostnet28,id=net28,mac=52:54:00:47:00:6f,bus=pci.1,\
+addr=0x3 \
+-netdev user,id=hostnet29 \
+-device e1000,netdev=hostnet29,id=net29,mac=52:54:00:2a:8c:8b,bus=pci.1,\
+addr=0x4 \
+-netdev user,id=hostnet30 \
+-device e1000,netdev=hostnet30,id=net30,mac=52:54:00:ec:d5:e3,bus=pci.1,\
+addr=0x5 \
+-netdev user,id=hostnet31 \
+-device e1000,netdev=hostnet31,id=net31,mac=52:54:00:7e:6e:c8,bus=pci.1,\
+addr=0x6 \
 -vnc 127.0.0.1:0 \
 -k en-us \
 -vga cirrus \
diff --git a/tests/qemuxml2argvdata/pci-expander-bus.args b/tests/qemuxml2argvdata/pci-expander-bus.args
index 7327afbc4..4a43f1fd3 100644
--- a/tests/qemuxml2argvdata/pci-expander-bus.args
+++ b/tests/qemuxml2argvdata/pci-expander-bus.args
@@ -22,68 +22,91 @@ path=/tmp/lib/domain--1-expander-test/monitor.sock,server,nowait \
 -boot c \
 -device pxb,bus_nr=254,id=pci.1,numa_node=1,bus=pci.0,addr=0x3 \
 -device pxb,bus_nr=252,id=pci.2,bus=pci.0,addr=0x4 \
--device rtl8139,vlan=0,id=net0,mac=52:54:00:f1:95:51,bus=pci.0,addr=0x5 \
--net user,vlan=0,name=hostnet0 \
--device e1000,vlan=1,id=net1,mac=52:54:00:5c:c6:1a,bus=pci.0,addr=0x7 \
--net user,vlan=1,name=hostnet1 \
--device e1000,vlan=2,id=net2,mac=52:54:00:39:97:ac,bus=pci.0,addr=0x8 \
--net user,vlan=2,name=hostnet2 \
--device e1000,vlan=3,id=net3,mac=52:54:00:45:28:cb,bus=pci.0,addr=0x9 \
--net user,vlan=3,name=hostnet3 \
--device e1000,vlan=4,id=net4,mac=52:54:00:ee:b9:a8,bus=pci.0,addr=0xa \
--net user,vlan=4,name=hostnet4 \
--device e1000,vlan=5,id=net5,mac=52:54:00:a9:f7:17,bus=pci.0,addr=0xb \
--net user,vlan=5,name=hostnet5 \
--device e1000,vlan=6,id=net6,mac=52:54:00:df:2b:f3,bus=pci.0,addr=0xc \
--net user,vlan=6,name=hostnet6 \
--device e1000,vlan=7,id=net7,mac=52:54:00:78:94:b4,bus=pci.0,addr=0xd \
--net user,vlan=7,name=hostnet7 \
--device e1000,vlan=8,id=net8,mac=52:54:00:6b:9b:06,bus=pci.0,addr=0xe \
--net user,vlan=8,name=hostnet8 \
--device e1000,vlan=9,id=net9,mac=52:54:00:17:df:bc,bus=pci.0,addr=0xf \
--net user,vlan=9,name=hostnet9 \
--device e1000,vlan=10,id=net10,mac=52:54:00:3b:d0:51,bus=pci.0,addr=0x10 \
--net user,vlan=10,name=hostnet10 \
--device e1000,vlan=11,id=net11,mac=52:54:00:8d:2d:17,bus=pci.0,addr=0x11 \
--net user,vlan=11,name=hostnet11 \
--device e1000,vlan=12,id=net12,mac=52:54:00:a7:66:af,bus=pci.0,addr=0x12 \
--net user,vlan=12,name=hostnet12 \
--device e1000,vlan=13,id=net13,mac=52:54:00:54:ab:d7,bus=pci.0,addr=0x13 \
--net user,vlan=13,name=hostnet13 \
--device e1000,vlan=14,id=net14,mac=52:54:00:1f:99:90,bus=pci.0,addr=0x14 \
--net user,vlan=14,name=hostnet14 \
--device e1000,vlan=15,id=net15,mac=52:54:00:c8:43:87,bus=pci.0,addr=0x15 \
--net user,vlan=15,name=hostnet15 \
--device e1000,vlan=16,id=net16,mac=52:54:00:df:22:b2,bus=pci.0,addr=0x16 \
--net user,vlan=16,name=hostnet16 \
--device e1000,vlan=17,id=net17,mac=52:54:00:d2:9a:47,bus=pci.0,addr=0x17 \
--net user,vlan=17,name=hostnet17 \
--device e1000,vlan=18,id=net18,mac=52:54:00:86:05:e2,bus=pci.0,addr=0x18 \
--net user,vlan=18,name=hostnet18 \
--device e1000,vlan=19,id=net19,mac=52:54:00:8c:1c:c2,bus=pci.0,addr=0x19 \
--net user,vlan=19,name=hostnet19 \
--device e1000,vlan=20,id=net20,mac=52:54:00:48:58:92,bus=pci.0,addr=0x1a \
--net user,vlan=20,name=hostnet20 \
--device e1000,vlan=21,id=net21,mac=52:54:00:99:e5:bf,bus=pci.0,addr=0x1b \
--net user,vlan=21,name=hostnet21 \
--device e1000,vlan=22,id=net22,mac=52:54:00:b1:8c:25,bus=pci.0,addr=0x1c \
--net user,vlan=22,name=hostnet22 \
--device e1000,vlan=23,id=net23,mac=52:54:00:60:e0:d0,bus=pci.0,addr=0x1d \
--net user,vlan=23,name=hostnet23 \
--device e1000,vlan=24,id=net24,mac=52:54:00:37:00:6a,bus=pci.0,addr=0x1e \
--net user,vlan=24,name=hostnet24 \
--device e1000,vlan=25,id=net25,mac=52:54:00:c7:c8:ad,bus=pci.0,addr=0x1f \
--net user,vlan=25,name=hostnet25 \
--device e1000,vlan=26,id=net26,mac=52:54:00:4e:a7:cf,bus=pci.1,addr=0x0 \
--net user,vlan=26,name=hostnet26 \
--device e1000,vlan=27,id=net27,mac=52:54:00:00:79:69,bus=pci.1,addr=0x1 \
--net user,vlan=27,name=hostnet27 \
--device e1000,vlan=28,id=net28,mac=52:54:00:47:00:6f,bus=pci.1,addr=0x2 \
--net user,vlan=28,name=hostnet28 \
--device e1000,vlan=29,id=net29,mac=52:54:00:2a:8c:8b,bus=pci.1,addr=0x3 \
--net user,vlan=29,name=hostnet29 \
--device e1000,vlan=30,id=net30,mac=52:54:00:ec:d5:e3,bus=pci.1,addr=0x4 \
--net user,vlan=30,name=hostnet30 \
--device e1000,vlan=31,id=net31,mac=52:54:00:7e:6e:c8,bus=pci.1,addr=0x5 \
--net user,vlan=31,name=hostnet31 \
+-netdev user,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:f1:95:51,bus=pci.0,\
+addr=0x5 \
+-netdev user,id=hostnet1 \
+-device e1000,netdev=hostnet1,id=net1,mac=52:54:00:5c:c6:1a,bus=pci.0,addr=0x7 \
+-netdev user,id=hostnet2 \
+-device e1000,netdev=hostnet2,id=net2,mac=52:54:00:39:97:ac,bus=pci.0,addr=0x8 \
+-netdev user,id=hostnet3 \
+-device e1000,netdev=hostnet3,id=net3,mac=52:54:00:45:28:cb,bus=pci.0,addr=0x9 \
+-netdev user,id=hostnet4 \
+-device e1000,netdev=hostnet4,id=net4,mac=52:54:00:ee:b9:a8,bus=pci.0,addr=0xa \
+-netdev user,id=hostnet5 \
+-device e1000,netdev=hostnet5,id=net5,mac=52:54:00:a9:f7:17,bus=pci.0,addr=0xb \
+-netdev user,id=hostnet6 \
+-device e1000,netdev=hostnet6,id=net6,mac=52:54:00:df:2b:f3,bus=pci.0,addr=0xc \
+-netdev user,id=hostnet7 \
+-device e1000,netdev=hostnet7,id=net7,mac=52:54:00:78:94:b4,bus=pci.0,addr=0xd \
+-netdev user,id=hostnet8 \
+-device e1000,netdev=hostnet8,id=net8,mac=52:54:00:6b:9b:06,bus=pci.0,addr=0xe \
+-netdev user,id=hostnet9 \
+-device e1000,netdev=hostnet9,id=net9,mac=52:54:00:17:df:bc,bus=pci.0,addr=0xf \
+-netdev user,id=hostnet10 \
+-device e1000,netdev=hostnet10,id=net10,mac=52:54:00:3b:d0:51,bus=pci.0,\
+addr=0x10 \
+-netdev user,id=hostnet11 \
+-device e1000,netdev=hostnet11,id=net11,mac=52:54:00:8d:2d:17,bus=pci.0,\
+addr=0x11 \
+-netdev user,id=hostnet12 \
+-device e1000,netdev=hostnet12,id=net12,mac=52:54:00:a7:66:af,bus=pci.0,\
+addr=0x12 \
+-netdev user,id=hostnet13 \
+-device e1000,netdev=hostnet13,id=net13,mac=52:54:00:54:ab:d7,bus=pci.0,\
+addr=0x13 \
+-netdev user,id=hostnet14 \
+-device e1000,netdev=hostnet14,id=net14,mac=52:54:00:1f:99:90,bus=pci.0,\
+addr=0x14 \
+-netdev user,id=hostnet15 \
+-device e1000,netdev=hostnet15,id=net15,mac=52:54:00:c8:43:87,bus=pci.0,\
+addr=0x15 \
+-netdev user,id=hostnet16 \
+-device e1000,netdev=hostnet16,id=net16,mac=52:54:00:df:22:b2,bus=pci.0,\
+addr=0x16 \
+-netdev user,id=hostnet17 \
+-device e1000,netdev=hostnet17,id=net17,mac=52:54:00:d2:9a:47,bus=pci.0,\
+addr=0x17 \
+-netdev user,id=hostnet18 \
+-device e1000,netdev=hostnet18,id=net18,mac=52:54:00:86:05:e2,bus=pci.0,\
+addr=0x18 \
+-netdev user,id=hostnet19 \
+-device e1000,netdev=hostnet19,id=net19,mac=52:54:00:8c:1c:c2,bus=pci.0,\
+addr=0x19 \
+-netdev user,id=hostnet20 \
+-device e1000,netdev=hostnet20,id=net20,mac=52:54:00:48:58:92,bus=pci.0,\
+addr=0x1a \
+-netdev user,id=hostnet21 \
+-device e1000,netdev=hostnet21,id=net21,mac=52:54:00:99:e5:bf,bus=pci.0,\
+addr=0x1b \
+-netdev user,id=hostnet22 \
+-device e1000,netdev=hostnet22,id=net22,mac=52:54:00:b1:8c:25,bus=pci.0,\
+addr=0x1c \
+-netdev user,id=hostnet23 \
+-device e1000,netdev=hostnet23,id=net23,mac=52:54:00:60:e0:d0,bus=pci.0,\
+addr=0x1d \
+-netdev user,id=hostnet24 \
+-device e1000,netdev=hostnet24,id=net24,mac=52:54:00:37:00:6a,bus=pci.0,\
+addr=0x1e \
+-netdev user,id=hostnet25 \
+-device e1000,netdev=hostnet25,id=net25,mac=52:54:00:c7:c8:ad,bus=pci.0,\
+addr=0x1f \
+-netdev user,id=hostnet26 \
+-device e1000,netdev=hostnet26,id=net26,mac=52:54:00:4e:a7:cf,bus=pci.1,\
+addr=0x0 \
+-netdev user,id=hostnet27 \
+-device e1000,netdev=hostnet27,id=net27,mac=52:54:00:00:79:69,bus=pci.1,\
+addr=0x1 \
+-netdev user,id=hostnet28 \
+-device e1000,netdev=hostnet28,id=net28,mac=52:54:00:47:00:6f,bus=pci.1,\
+addr=0x2 \
+-netdev user,id=hostnet29 \
+-device e1000,netdev=hostnet29,id=net29,mac=52:54:00:2a:8c:8b,bus=pci.1,\
+addr=0x3 \
+-netdev user,id=hostnet30 \
+-device e1000,netdev=hostnet30,id=net30,mac=52:54:00:ec:d5:e3,bus=pci.1,\
+addr=0x4 \
+-netdev user,id=hostnet31 \
+-device e1000,netdev=hostnet31,id=net31,mac=52:54:00:7e:6e:c8,bus=pci.1,\
+addr=0x5 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6
diff --git a/tests/qemuxml2argvdata/pci-rom.args b/tests/qemuxml2argvdata/pci-rom.args
index b50581283..612c29ef1 100644
--- a/tests/qemuxml2argvdata/pci-rom.args
+++ b/tests/qemuxml2argvdata/pci-rom.args
@@ -22,12 +22,12 @@ server,nowait \
 -usb \
 -drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:24:a5:9f,bus=pci.0,addr=0x3,\
-rombar=1 \
--net user,vlan=0,name=hostnet0 \
--device virtio-net-pci,vlan=1,id=net1,mac=52:54:00:24:a5:9e,bus=pci.0,addr=0x4,\
-romfile=/etc/fake/bootrom.bin \
--net user,vlan=1,name=hostnet1 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:24:a5:9f,bus=pci.0,\
+addr=0x3,rombar=1 \
+-netdev user,id=hostnet1 \
+-device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:24:a5:9e,bus=pci.0,\
+addr=0x4,romfile=/etc/fake/bootrom.bin \
 -device pci-assign,host=06:12.5,id=hostdev0,bus=pci.0,addr=0x5,rombar=0 \
 -device pci-assign,host=06:12.6,id=hostdev1,bus=pci.0,addr=0x6,rombar=1,\
 romfile=/etc/fake/bootrom.bin \
diff --git a/tests/qemuxml2argvdata/pcie-expander-bus.args b/tests/qemuxml2argvdata/pcie-expander-bus.args
index 23852b45e..cd70bb520 100644
--- a/tests/qemuxml2argvdata/pcie-expander-bus.args
+++ b/tests/qemuxml2argvdata/pcie-expander-bus.args
@@ -57,67 +57,94 @@ path=/tmp/lib/domain--1-pcie-expander-bus-te/monitor.sock,server,nowait \
 -device xio3130-downstream,port=0x1f,chassis=35,id=pci.35,bus=pci.3,addr=0x1f \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-sata0-0-0 \
 -device ide-drive,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0 \
--device rtl8139,vlan=0,id=net0,mac=52:54:00:f1:95:51,bus=pci.4,addr=0x0 \
--net user,vlan=0,name=hostnet0 \
--device e1000,vlan=1,id=net1,mac=52:54:00:5c:c6:1a,bus=pci.5,addr=0x0 \
--net user,vlan=1,name=hostnet1 \
--device e1000,vlan=2,id=net2,mac=52:54:00:39:97:ac,bus=pci.6,addr=0x0 \
--net user,vlan=2,name=hostnet2 \
--device e1000,vlan=3,id=net3,mac=52:54:00:ee:b9:a8,bus=pci.7,addr=0x0 \
--net user,vlan=3,name=hostnet3 \
--device e1000,vlan=4,id=net4,mac=52:54:00:a9:f7:17,bus=pci.8,addr=0x0 \
--net user,vlan=4,name=hostnet4 \
--device e1000,vlan=5,id=net5,mac=52:54:00:df:2b:f3,bus=pci.9,addr=0x0 \
--net user,vlan=5,name=hostnet5 \
--device e1000,vlan=6,id=net6,mac=52:54:00:78:94:b4,bus=pci.10,addr=0x0 \
--net user,vlan=6,name=hostnet6 \
--device e1000,vlan=7,id=net7,mac=52:54:00:6b:9b:06,bus=pci.11,addr=0x0 \
--net user,vlan=7,name=hostnet7 \
--device e1000,vlan=8,id=net8,mac=52:54:00:17:df:bc,bus=pci.12,addr=0x0 \
--net user,vlan=8,name=hostnet8 \
--device e1000,vlan=9,id=net9,mac=52:54:00:3b:d0:51,bus=pci.13,addr=0x0 \
--net user,vlan=9,name=hostnet9 \
--device e1000,vlan=10,id=net10,mac=52:54:00:8d:2d:17,bus=pci.14,addr=0x0 \
--net user,vlan=10,name=hostnet10 \
--device e1000,vlan=11,id=net11,mac=52:54:00:a7:66:af,bus=pci.15,addr=0x0 \
--net user,vlan=11,name=hostnet11 \
--device e1000,vlan=12,id=net12,mac=52:54:00:54:ab:d7,bus=pci.16,addr=0x0 \
--net user,vlan=12,name=hostnet12 \
--device e1000,vlan=13,id=net13,mac=52:54:00:1f:99:90,bus=pci.17,addr=0x0 \
--net user,vlan=13,name=hostnet13 \
--device e1000,vlan=14,id=net14,mac=52:54:00:c8:43:87,bus=pci.18,addr=0x0 \
--net user,vlan=14,name=hostnet14 \
--device e1000,vlan=15,id=net15,mac=52:54:00:df:22:b2,bus=pci.19,addr=0x0 \
--net user,vlan=15,name=hostnet15 \
--device e1000,vlan=16,id=net16,mac=52:54:00:d2:9a:47,bus=pci.20,addr=0x0 \
--net user,vlan=16,name=hostnet16 \
--device e1000,vlan=17,id=net17,mac=52:54:00:86:05:e2,bus=pci.21,addr=0x0 \
--net user,vlan=17,name=hostnet17 \
--device e1000,vlan=18,id=net18,mac=52:54:00:8c:1c:c2,bus=pci.22,addr=0x0 \
--net user,vlan=18,name=hostnet18 \
--device e1000,vlan=19,id=net19,mac=52:54:00:48:58:92,bus=pci.23,addr=0x0 \
--net user,vlan=19,name=hostnet19 \
--device e1000,vlan=20,id=net20,mac=52:54:00:99:e5:bf,bus=pci.24,addr=0x0 \
--net user,vlan=20,name=hostnet20 \
--device e1000,vlan=21,id=net21,mac=52:54:00:b1:8c:25,bus=pci.25,addr=0x0 \
--net user,vlan=21,name=hostnet21 \
--device e1000,vlan=22,id=net22,mac=52:54:00:60:e0:d0,bus=pci.26,addr=0x0 \
--net user,vlan=22,name=hostnet22 \
--device e1000,vlan=23,id=net23,mac=52:54:00:37:00:6a,bus=pci.27,addr=0x0 \
--net user,vlan=23,name=hostnet23 \
--device e1000,vlan=24,id=net24,mac=52:54:00:c7:c8:ad,bus=pci.28,addr=0x0 \
--net user,vlan=24,name=hostnet24 \
--device e1000,vlan=25,id=net25,mac=52:54:00:4e:a7:cf,bus=pci.29,addr=0x0 \
--net user,vlan=25,name=hostnet25 \
--device e1000,vlan=26,id=net26,mac=52:54:00:00:79:69,bus=pci.30,addr=0x0 \
--net user,vlan=26,name=hostnet26 \
--device e1000,vlan=27,id=net27,mac=52:54:00:47:00:6f,bus=pci.31,addr=0x0 \
--net user,vlan=27,name=hostnet27 \
--device e1000,vlan=28,id=net28,mac=52:54:00:2a:8c:8b,bus=pci.32,addr=0x0 \
--net user,vlan=28,name=hostnet28 \
--device e1000,vlan=29,id=net29,mac=52:54:00:ec:d5:e3,bus=pci.33,addr=0x0 \
--net user,vlan=29,name=hostnet29 \
--device e1000,vlan=30,id=net30,mac=52:54:00:7e:6e:c8,bus=pci.34,addr=0x0 \
--net user,vlan=30,name=hostnet30 \
--device e1000,vlan=31,id=net31,mac=52:54:00:7e:6d:c9,bus=pci.35,addr=0x0 \
--net user,vlan=31,name=hostnet31
+-netdev user,id=hostnet0 \
+-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:f1:95:51,bus=pci.4,\
+addr=0x0 \
+-netdev user,id=hostnet1 \
+-device e1000,netdev=hostnet1,id=net1,mac=52:54:00:5c:c6:1a,bus=pci.5,addr=0x0 \
+-netdev user,id=hostnet2 \
+-device e1000,netdev=hostnet2,id=net2,mac=52:54:00:39:97:ac,bus=pci.6,addr=0x0 \
+-netdev user,id=hostnet3 \
+-device e1000,netdev=hostnet3,id=net3,mac=52:54:00:ee:b9:a8,bus=pci.7,addr=0x0 \
+-netdev user,id=hostnet4 \
+-device e1000,netdev=hostnet4,id=net4,mac=52:54:00:a9:f7:17,bus=pci.8,addr=0x0 \
+-netdev user,id=hostnet5 \
+-device e1000,netdev=hostnet5,id=net5,mac=52:54:00:df:2b:f3,bus=pci.9,addr=0x0 \
+-netdev user,id=hostnet6 \
+-device e1000,netdev=hostnet6,id=net6,mac=52:54:00:78:94:b4,bus=pci.10,\
+addr=0x0 \
+-netdev user,id=hostnet7 \
+-device e1000,netdev=hostnet7,id=net7,mac=52:54:00:6b:9b:06,bus=pci.11,\
+addr=0x0 \
+-netdev user,id=hostnet8 \
+-device e1000,netdev=hostnet8,id=net8,mac=52:54:00:17:df:bc,bus=pci.12,\
+addr=0x0 \
+-netdev user,id=hostnet9 \
+-device e1000,netdev=hostnet9,id=net9,mac=52:54:00:3b:d0:51,bus=pci.13,\
+addr=0x0 \
+-netdev user,id=hostnet10 \
+-device e1000,netdev=hostnet10,id=net10,mac=52:54:00:8d:2d:17,bus=pci.14,\
+addr=0x0 \
+-netdev user,id=hostnet11 \
+-device e1000,netdev=hostnet11,id=net11,mac=52:54:00:a7:66:af,bus=pci.15,\
+addr=0x0 \
+-netdev user,id=hostnet12 \
+-device e1000,netdev=hostnet12,id=net12,mac=52:54:00:54:ab:d7,bus=pci.16,\
+addr=0x0 \
+-netdev user,id=hostnet13 \
+-device e1000,netdev=hostnet13,id=net13,mac=52:54:00:1f:99:90,bus=pci.17,\
+addr=0x0 \
+-netdev user,id=hostnet14 \
+-device e1000,netdev=hostnet14,id=net14,mac=52:54:00:c8:43:87,bus=pci.18,\
+addr=0x0 \
+-netdev user,id=hostnet15 \
+-device e1000,netdev=hostnet15,id=net15,mac=52:54:00:df:22:b2,bus=pci.19,\
+addr=0x0 \
+-netdev user,id=hostnet16 \
+-device e1000,netdev=hostnet16,id=net16,mac=52:54:00:d2:9a:47,bus=pci.20,\
+addr=0x0 \
+-netdev user,id=hostnet17 \
+-device e1000,netdev=hostnet17,id=net17,mac=52:54:00:86:05:e2,bus=pci.21,\
+addr=0x0 \
+-netdev user,id=hostnet18 \
+-device e1000,netdev=hostnet18,id=net18,mac=52:54:00:8c:1c:c2,bus=pci.22,\
+addr=0x0 \
+-netdev user,id=hostnet19 \
+-device e1000,netdev=hostnet19,id=net19,mac=52:54:00:48:58:92,bus=pci.23,\
+addr=0x0 \
+-netdev user,id=hostnet20 \
+-device e1000,netdev=hostnet20,id=net20,mac=52:54:00:99:e5:bf,bus=pci.24,\
+addr=0x0 \
+-netdev user,id=hostnet21 \
+-device e1000,netdev=hostnet21,id=net21,mac=52:54:00:b1:8c:25,bus=pci.25,\
+addr=0x0 \
+-netdev user,id=hostnet22 \
+-device e1000,netdev=hostnet22,id=net22,mac=52:54:00:60:e0:d0,bus=pci.26,\
+addr=0x0 \
+-netdev user,id=hostnet23 \
+-device e1000,netdev=hostnet23,id=net23,mac=52:54:00:37:00:6a,bus=pci.27,\
+addr=0x0 \
+-netdev user,id=hostnet24 \
+-device e1000,netdev=hostnet24,id=net24,mac=52:54:00:c7:c8:ad,bus=pci.28,\
+addr=0x0 \
+-netdev user,id=hostnet25 \
+-device e1000,netdev=hostnet25,id=net25,mac=52:54:00:4e:a7:cf,bus=pci.29,\
+addr=0x0 \
+-netdev user,id=hostnet26 \
+-device e1000,netdev=hostnet26,id=net26,mac=52:54:00:00:79:69,bus=pci.30,\
+addr=0x0 \
+-netdev user,id=hostnet27 \
+-device e1000,netdev=hostnet27,id=net27,mac=52:54:00:47:00:6f,bus=pci.31,\
+addr=0x0 \
+-netdev user,id=hostnet28 \
+-device e1000,netdev=hostnet28,id=net28,mac=52:54:00:2a:8c:8b,bus=pci.32,\
+addr=0x0 \
+-netdev user,id=hostnet29 \
+-device e1000,netdev=hostnet29,id=net29,mac=52:54:00:ec:d5:e3,bus=pci.33,\
+addr=0x0 \
+-netdev user,id=hostnet30 \
+-device e1000,netdev=hostnet30,id=net30,mac=52:54:00:7e:6e:c8,bus=pci.34,\
+addr=0x0 \
+-netdev user,id=hostnet31 \
+-device e1000,netdev=hostnet31,id=net31,mac=52:54:00:7e:6d:c9,bus=pci.35,\
+addr=0x0
diff --git a/tests/qemuxml2argvdata/q35-pci-force-address.args b/tests/qemuxml2argvdata/q35-pci-force-address.args
index bbd606680..24270663b 100644
--- a/tests/qemuxml2argvdata/q35-pci-force-address.args
+++ b/tests/qemuxml2argvdata/q35-pci-force-address.args
@@ -21,7 +21,8 @@ server,nowait \
 -device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1e \
 -device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x0 \
 -device ioh3420,port=0x10,chassis=3,id=pci.3,bus=pcie.0,addr=0x2 \
--device e1000e,vlan=0,id=net0,mac=52:54:00:aa:bf:ef,bus=pci.2,addr=0x1 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device e1000e,netdev=hostnet0,id=net0,mac=52:54:00:aa:bf:ef,bus=pci.2,\
+addr=0x1 \
 -device intel-hda,id=sound0,bus=pci.3,addr=0x0 \
 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0
diff --git a/tests/qemuxml2argvdata/user-aliases.args b/tests/qemuxml2argvdata/user-aliases.args
index ad9394710..579d84c91 100644
--- a/tests/qemuxml2argvdata/user-aliases.args
+++ b/tests/qemuxml2argvdata/user-aliases.args
@@ -48,15 +48,15 @@ id=ua-myEncryptedDisk1 \
 if=none,id=drive-ua-WhatAnAwesomeCDROM,media=cdrom,readonly=on,cache=none \
 -device ide-drive,bus=ide.1,unit=0,drive=drive-ua-WhatAnAwesomeCDROM,\
 id=ua-WhatAnAwesomeCDROM \
--device virtio-net-pci,vlan=0,id=ua-CheckoutThisNIC,mac=52:54:00:d6:c0:0b,\
-bus=pci.0,addr=0x3 \
--net tap,fd=3,vlan=0,name=hostua-CheckoutThisNIC \
--device rtl8139,vlan=1,id=ua-WeCanAlsoDoServerMode,mac=52:54:00:22:c9:42,\
-bus=pci.0,addr=0x9 \
--net socket,listen=127.0.0.1:1234,vlan=1,name=hostua-WeCanAlsoDoServerMode \
--device rtl8139,vlan=2,id=ua-AndAlsoClientMode,mac=52:54:00:8c:b1:f8,bus=pci.0,\
-addr=0xa \
--net socket,connect=127.0.0.1:1234,vlan=2,name=hostua-AndAlsoClientMode \
+-netdev tap,fd=3,id=hostua-CheckoutThisNIC \
+-device virtio-net-pci,netdev=hostua-CheckoutThisNIC,id=ua-CheckoutThisNIC,\
+mac=52:54:00:d6:c0:0b,bus=pci.0,addr=0x3 \
+-netdev socket,listen=127.0.0.1:1234,id=hostua-WeCanAlsoDoServerMode \
+-device rtl8139,netdev=hostua-WeCanAlsoDoServerMode,\
+id=ua-WeCanAlsoDoServerMode,mac=52:54:00:22:c9:42,bus=pci.0,addr=0x9 \
+-netdev socket,connect=127.0.0.1:1234,id=hostua-AndAlsoClientMode \
+-device rtl8139,netdev=hostua-AndAlsoClientMode,id=ua-AndAlsoClientMode,\
+mac=52:54:00:8c:b1:f8,bus=pci.0,addr=0xa \
 -device ccid-card-emulated,backend=nss-emulated,id=smartcard0,bus=ua-myCCID.0 \
 -chardev pty,id=charserial0 \
 -device isa-serial,chardev=charserial0,id=serial0 \
diff --git a/tests/qemuxml2argvdata/virtio-lun.args b/tests/qemuxml2argvdata/virtio-lun.args
index 54bc28e0d..5a38d860f 100644
--- a/tests/qemuxml2argvdata/virtio-lun.args
+++ b/tests/qemuxml2argvdata/virtio-lun.args
@@ -26,6 +26,7 @@ id=virtio-disk0 \
 -drive file=/dev/sdfake2,format=qcow2,if=none,id=drive-virtio-disk1 \
 -device virtio-blk-pci,scsi=on,bus=pci.0,addr=0x5,drive=drive-virtio-disk1,\
 id=virtio-disk1 \
--device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:e5:48:58,bus=pci.0,addr=0x3 \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:e5:48:58,bus=pci.0,\
+addr=0x3 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7
diff --git a/tests/qemuxml2argvdata/virtio-options.args b/tests/qemuxml2argvdata/virtio-options.args
index aca0ee232..3c1751368 100644
--- a/tests/qemuxml2argvdata/virtio-options.args
+++ b/tests/qemuxml2argvdata/virtio-options.args
@@ -33,9 +33,9 @@ ats=on,bus=pci.0,addr=0x3 \
 path=/export/fs2 \
 -device virtio-9p-pci,id=fs1,fsdev=fsdev-fs1,mount_tag=fs2,iommu_platform=on,\
 ats=on,bus=pci.0,addr=0x4 \
--device virtio-net-pci,vlan=0,id=net0,mac=52:54:56:58:5a:5c,bus=pci.0,addr=0x6,\
-iommu_platform=on,ats=on \
--net user,vlan=0,name=hostnet0 \
+-netdev user,id=hostnet0 \
+-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:56:58:5a:5c,bus=pci.0,\
+addr=0x6,iommu_platform=on,ats=on \
 -device virtio-mouse-pci,id=input0,bus=pci.0,addr=0xe,iommu_platform=on,ats=on \
 -device virtio-keyboard-pci,id=input1,bus=pci.0,addr=0x10,iommu_platform=on,\
 ats=on \
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index c950dd793..6e7cd58c3 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1163,8 +1163,7 @@ mymain(void)
     DO_TEST("graphics-spice-auto-socket",
             QEMU_CAPS_SPICE,
             QEMU_CAPS_SPICE_UNIX,
-            QEMU_CAPS_DEVICE_CIRRUS_VGA);
-    driver.config->spiceAutoUnixSocket = true;
+            QEMU_CAPS_DEVICE_CIRRUS_VGA); driver.config->spiceAutoUnixSocket = true;
     DO_TEST("graphics-spice-auto-socket-cfg",
             QEMU_CAPS_SPICE,
             QEMU_CAPS_SPICE_UNIX,
@@ -1181,22 +1180,21 @@ mymain(void)
     DO_TEST("misc-no-reboot", NONE);
     DO_TEST("misc-uuid", NONE);
     DO_TEST_PARSE_ERROR("vhost_queues-invalid", NONE);
-    DO_TEST("net-vhostuser", QEMU_CAPS_NETDEV);
+    DO_TEST("net-vhostuser", NONE);
     DO_TEST("net-vhostuser-multiq",
-            QEMU_CAPS_NETDEV, QEMU_CAPS_VHOSTUSER_MULTIQUEUE);
-    DO_TEST_FAILURE("net-vhostuser-multiq", QEMU_CAPS_NETDEV);
+            QEMU_CAPS_VHOSTUSER_MULTIQUEUE);
+    DO_TEST_FAILURE("net-vhostuser-multiq", NONE);
     DO_TEST_FAILURE("net-vhostuser-fail",
-                    QEMU_CAPS_NETDEV,
                     QEMU_CAPS_VHOSTUSER_MULTIQUEUE);
     DO_TEST("net-user", NONE);
-    DO_TEST("net-user-addr", QEMU_CAPS_NETDEV);
+    DO_TEST("net-user-addr", NONE);
     DO_TEST("net-virtio", NONE);
     DO_TEST("net-virtio-device",
             QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_VIRTIO_TX_ALG);
     DO_TEST("net-virtio-disable-offloads",
             QEMU_CAPS_NODEFCONFIG);
     DO_TEST("net-virtio-netdev",
-            QEMU_CAPS_NETDEV, QEMU_CAPS_NODEFCONFIG);
+            QEMU_CAPS_NODEFCONFIG);
     DO_TEST("net-virtio-s390",
             QEMU_CAPS_VIRTIO_S390);
     DO_TEST("net-virtio-ccw",
@@ -2204,7 +2202,6 @@ mymain(void)
             QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
@@ -2229,7 +2226,6 @@ mymain(void)
     DO_TEST("q35-virtio-pci",
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
@@ -2252,7 +2248,6 @@ mymain(void)
             QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
@@ -2274,7 +2269,6 @@ mymain(void)
             QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
@@ -2296,7 +2290,6 @@ mymain(void)
             QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
@@ -2322,7 +2315,6 @@ mymain(void)
             QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 30bf68b02..30285623d 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -437,7 +437,7 @@ mymain(void)
     DO_TEST("misc-uuid", NONE);
     DO_TEST("net-vhostuser", NONE);
     DO_TEST("net-user", NONE);
-    DO_TEST("net-user-addr", QEMU_CAPS_NETDEV);
+    DO_TEST("net-user-addr", NONE);
     DO_TEST("net-virtio", NONE);
     DO_TEST("net-virtio-device", NONE);
     DO_TEST("net-virtio-disable-offloads", NONE);
@@ -754,7 +754,6 @@ mymain(void)
             QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
@@ -777,7 +776,6 @@ mymain(void)
     DO_TEST("q35-virtio-pci",
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
@@ -800,7 +798,6 @@ mymain(void)
             QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
@@ -822,7 +819,6 @@ mymain(void)
             QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
@@ -844,7 +840,6 @@ mymain(void)
             QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
@@ -871,7 +866,6 @@ mymain(void)
             QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
             QEMU_CAPS_DEVICE_VIRTIO_RNG,
             QEMU_CAPS_OBJECT_RNG_RANDOM,
-            QEMU_CAPS_NETDEV,
             QEMU_CAPS_DEVICE_VIRTIO_NET,
             QEMU_CAPS_DEVICE_VIRTIO_GPU,
             QEMU_CAPS_VIRTIO_GPU_VIRGL,
-- 
2.16.1




More information about the libvir-list mailing list