This patch tries to use "-device" to add nic device because recent qemu suggests to use it. A nic_extra_params was also introduced to add some advanced params to a nic (currently only availabe for virtio_net) such as mrg_rxbuf. Changes from v2: - Not needed to save lines in simple if clauses, do proper line break - Rebase against latest HEAD Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx> --- client/tests/kvm/kvm_vm.py | 33 +++++++++++++++++++++++++------ client/tests/kvm/tests_base.cfg.sample | 3 ++ 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/client/tests/kvm/kvm_vm.py b/client/tests/kvm/kvm_vm.py index a473bb4..3388b14 100755 --- a/client/tests/kvm/kvm_vm.py +++ b/client/tests/kvm/kvm_vm.py @@ -253,13 +253,31 @@ class VM: if boot: cmd += ",boot=on" return cmd - def add_nic(help, vlan, model=None, mac=None, netdev_id=None): - if has_option(help, "netdev"): - cmd = " -net nic,netdev=%s" % netdev_id + def add_nic(help, vlan, model=None, mac=None, netdev_id=None, + nic_extra_params=None): + if has_option(help, "device"): + if model == "virtio": + model="virtio-net-pci" + if not model: + model= "rtl8139" + cmd = " -device %s" % model + if mac: + cmd += ",mac=%s" % mac + if has_option(help, "netdev"): + cmd += ",netdev=%s" % netdev_id + else: + cmd += "vlan=%d," % vlan + if nic_extra_params: + cmd += ",%s" % nic_extra_params else: - cmd = " -net nic,vlan=%d" % vlan - if model: cmd += ",model=%s" % model - if mac: cmd += ",macaddr='%s'" % mac + if has_option(help, "netdev"): + cmd = " -net nic,netdev=%s" % netdev_id + else: + cmd = " -net nic,vlan=%d" % vlan + if model: + cmd += ",model=%s" % model + if mac: + cmd += ",macaddr='%s'" % mac return cmd def add_net(help, vlan, mode, ifname=None, script=None, @@ -414,7 +432,8 @@ class VM: self.mac_prefix) qemu_cmd += add_nic(help, vlan, nic_params.get("nic_model"), mac, - self.netdev_id[vlan]) + self.netdev_id[vlan], + nic_params.get("nic_extra_params")) # Handle the '-net tap' or '-net user' part script = nic_params.get("nic_script") downscript = nic_params.get("nic_downscript") diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample index a524242..8d62c42 100644 --- a/client/tests/kvm/tests_base.cfg.sample +++ b/client/tests/kvm/tests_base.cfg.sample @@ -699,6 +699,9 @@ variants: supported_features = "tx rx sg tso gso gro lro" - virtio_net: nic_model = virtio + # you can add advanced attributes on nic_extra_params + # such as mrg_rxbuf + #nic_extra_params = jumbo: mtu = 65520 ethtool: -- 1.7.2.3 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html