From 8d78136ffb8f1711b30b7bf3e150db257fd145a8 Mon Sep 17 00:00:00 2001 From: Kunhui-Li Date: Wed, 27 Apr 2022 18:11:46 +0800 Subject: [PATCH] config_tools: add logic for virtio_framework in launch script If the user select "Kernel based (Virtual Host)" in virtio_framework entry, the "vhost" string will be added to the dm parameter. The generated launch script will look like below: "virtio-net tap=WaaG,vhost,mac_seed=${mac:0:17}-POST_STD_VM1" Tracked-On: #6690 Signed-off-by: Kunhui-Li Reviewed-by: Junjie Mao --- misc/config_tools/launch_config/launch_cfg_gen.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/misc/config_tools/launch_config/launch_cfg_gen.py b/misc/config_tools/launch_config/launch_cfg_gen.py index bf358230f..18767936d 100755 --- a/misc/config_tools/launch_config/launch_cfg_gen.py +++ b/misc/config_tools/launch_config/launch_cfg_gen.py @@ -298,10 +298,14 @@ def generate_for_one_vm(board_etree, hv_scenario_etree, vm_scenario_etree, vm_id elif backend_type == "pty" or backend_type == "stdio": script.add_virtual_device("virtio-console", options=f"{preceding_mask}{backend_type}:{backend_type}_port") - for interface_name in eval_xpath_all(vm_scenario_etree, ".//virtio_devices/network/interface_name[text() != '']/text()"): + for virtio_network_etree in eval_xpath_all(vm_scenario_etree, ".//virtio_devices/network"): + virtio_framework = eval_xpath(virtio_network_etree, "./virtio_framework/text()") + interface_name = eval_xpath(virtio_network_etree, "./interface_name/text()") params = interface_name.split(",", maxsplit=1) tap_conf = f"tap={params[0]}" params = [tap_conf] + params[1:] + if virtio_framework == "Kernel based (Virtual Host)": + params.append("vhost") script.add_init_command(f"mac=$(cat /sys/class/net/e*/address)") params.append(f"mac_seed=${{mac:0:17}}-{vm_name}") script.add_virtual_device("virtio-net", options=",".join(params))