If qemu support netdev parameter, It will be added to qemu command
line by default.

Signed-off-by: Feng Yang <fy...@redhat.com>
---
 client/tests/kvm/kvm_vm.py |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/client/tests/kvm/kvm_vm.py b/client/tests/kvm/kvm_vm.py
index f3ce4d6..1da4622 100755
--- a/client/tests/kvm/kvm_vm.py
+++ b/client/tests/kvm/kvm_vm.py
@@ -115,6 +115,9 @@ class VM:
         self.root_dir = root_dir
         self.address_cache = address_cache
         self.pci_assignable = None
+        self.netdev_id = []
+        for nic in params.get("nics").split():
+            self.netdev_id.append(kvm_utils.generate_random_string(4))
 
         # Find available monitor filename
         while True:
@@ -226,15 +229,20 @@ class VM:
             if boot: cmd += ",boot=on"
             return cmd
 
-        def add_nic(help, vlan, model=None, mac=None):
+        def add_nic(help, vlan, model=None, mac=None, netdev_id=None):
             cmd = " -net nic,vlan=%d" % vlan
             if model: cmd += ",model=%s" % model
+            if has_option(help, "netdev"):
+                cmd +=",netdev=%s" % netdev_id
             if mac: cmd += ",macaddr=%s" % mac
             return cmd
 
         def add_net(help, vlan, mode, ifname=None, script=None,
-                    downscript=None):
-            cmd = " -net %s,vlan=%d" % (mode, vlan)
+                    downscript=None, netdev_id=None):
+            if has_option(help, "netdev"):
+                cmd = " -netdev %s,id=%s" % (mode, netdev_id)
+            else:
+                cmd = " -net %s,vlan=%d" % (mode, vlan)
             if mode == "tap":
                 if ifname: cmd += ",ifname=%s" % ifname
                 if script: cmd += ",script=%s" % script
@@ -313,7 +321,8 @@ class VM:
             mac = None
             if "address_index" in nic_params:
                 mac = kvm_utils.get_mac_ip_pair_from_dict(nic_params)[0]
-            qemu_cmd += add_nic(help, vlan, nic_params.get("nic_model"), mac)
+            qemu_cmd += add_nic(help, vlan, nic_params.get("nic_model"), mac,
+                                self.netdev_id[vlan])
             # Handle the '-net tap' or '-net user' part
             script = nic_params.get("nic_script")
             downscript = nic_params.get("nic_downscript")
@@ -323,7 +332,7 @@ class VM:
                 downscript = kvm_utils.get_path(root_dir, downscript)
             qemu_cmd += add_net(help, vlan, nic_params.get("nic_mode", "user"),
                                 nic_params.get("nic_ifname"),
-                                script, downscript)
+                                script, downscript, self.netdev_id[vlan])
             # Proceed to next NIC
             vlan += 1
 
-- 
1.6.5.2

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to