From: Dor Laor <dlaor@redhat.com>
To: Amos Kong <akong@redhat.com>
Cc: Lucas Meneghel Rodrigues <lmr@redhat.com>,
autotest@test.kernel.org, kvm@vger.kernel.org
Subject: Re: [Autotest] [PATCH] Test 802.1Q vlan of nic
Date: Mon, 19 Oct 2009 10:22:21 +0200 [thread overview]
Message-ID: <4ADC21BD.5080304@redhat.com> (raw)
In-Reply-To: <20091015094852.GA8640@dhcp-66-70-48.nay.redhat.com>
On 10/15/2009 11:48 AM, Amos Kong wrote:
>
> Test 802.1Q vlan of nic, config it by vconfig command.
> 1) Create two VMs
> 2) Setup guests in different vlan by vconfig and test communication by ping
> using hard-coded ip address
> 3) Setup guests in same vlan and test communication by ping
> 4) Recover the vlan config
>
> Signed-off-by: Amos Kong<akong@redhat.com>
> ---
> client/tests/kvm/kvm_tests.cfg.sample | 6 +++
> client/tests/kvm/tests/vlan_tag.py | 73 +++++++++++++++++++++++++++++++++
> 2 files changed, 79 insertions(+), 0 deletions(-)
> mode change 100644 => 100755 client/tests/kvm/scripts/qemu-ifup
In general the above should come as an independent patch.
> create mode 100644 client/tests/kvm/tests/vlan_tag.py
>
> diff --git a/client/tests/kvm/kvm_tests.cfg.sample b/client/tests/kvm/kvm_tests.cfg.sample
> index 9ccc9b5..4e47767 100644
> --- a/client/tests/kvm/kvm_tests.cfg.sample
> +++ b/client/tests/kvm/kvm_tests.cfg.sample
> @@ -166,6 +166,12 @@ variants:
> used_cpus = 5
> used_mem = 2560
>
> + - vlan_tag: install setup
> + type = vlan_tag
> + subnet2 = 192.168.123
> + vlans = "10 20"
If we want to be fanatic and safe we should dynamically choose subnet
and vlans numbers that are not used on the host instead of hard code it.
> + nic_mode = tap
> + nic_model = e1000
Why only e1000? Let's test virtio and rtl8139 as well. Can't you inherit
the nic model from the config?
>
> - autoit: install setup
> type = autoit
> diff --git a/client/tests/kvm/scripts/qemu-ifup b/client/tests/kvm/scripts/qemu-ifup
> old mode 100644
> new mode 100755
> diff --git a/client/tests/kvm/tests/vlan_tag.py b/client/tests/kvm/tests/vlan_tag.py
> new file mode 100644
> index 0000000..15e763f
> --- /dev/null
> +++ b/client/tests/kvm/tests/vlan_tag.py
> @@ -0,0 +1,73 @@
> +import logging, time
> +from autotest_lib.client.common_lib import error
> +import kvm_subprocess, kvm_test_utils, kvm_utils
> +
> +def run_vlan_tag(test, params, env):
> + """
> + Test 802.1Q vlan of nic, config it by vconfig command.
> +
> + 1) Create two VMs
> + 2) Setup guests in different vlan by vconfig and test communication by ping
> + using hard-coded ip address
> + 3) Setup guests in same vlan and test communication by ping
> + 4) Recover the vlan config
> +
> + @param test: Kvm test object
> + @param params: Dictionary with the test parameters.
> + @param env: Dictionary with test environment.
> + """
> +
> + vm = []
> + session = []
> + subnet2 = params.get("subnet2")
> + vlans = params.get("vlans").split()
> +
> + vm.append(kvm_test_utils.get_living_vm(env, "%s" % params.get("main_vm")))
> +
> + params_vm2 = params.copy()
> + params_vm2['image_snapshot'] = "yes"
> + params_vm2['kill_vm_gracefully'] = "no"
> + params_vm2["address_index"] = int(params.get("address_index", 0))+1
> + vm.append(vm[0].clone("vm2", params_vm2))
> + kvm_utils.env_register_vm(env, "vm2", vm[1])
> + if not vm[1].create():
> + raise error.TestError("VM 1 create faild")
The whole 7-8 lines above should be grouped as a function to clone
existing VM. It should be part of kvm autotest infrastructure.
Besides that, it looks good.
> +
> + for i in range(2):
> + session.append(kvm_test_utils.wait_for_login(vm[i]))
> +
> + try:
> + vconfig_cmd = "vconfig add eth0 %s;ifconfig eth0.%s %s.%s"
> + # Attempt to configure IPs for the VMs and record the results in
> + # boolean variables
> + # Make vm1 and vm2 in the different vlan
> +
> + ip_config_vm1_ok = (session[0].get_command_status(vconfig_cmd
> + % (vlans[0], vlans[0], subnet2, "11")) == 0)
> + ip_config_vm2_ok = (session[1].get_command_status(vconfig_cmd
> + % (vlans[1], vlans[1], subnet2, "12")) == 0)
> + if not ip_config_vm1_ok or not ip_config_vm2_ok:
> + raise error.TestError, "Fail to config VMs ip address"
> + ping_diff_vlan_ok = (session[0].get_command_status(
> + "ping -c 2 %s.12" % subnet2) == 0)
> +
> + if ping_diff_vlan_ok:
> + raise error.TestFail("VM 2 is unexpectedly pingable in different "
> + "vlan")
> + # Make vm2 in the same vlan with vm1
> + vlan_config_vm2_ok = (session[1].get_command_status(
> + "vconfig rem eth0.%s;vconfig add eth0 %s;"
> + "ifconfig eth0.%s %s.12" %
> + (vlans[1], vlans[0], vlans[0], subnet2)) == 0)
> + if not vlan_config_vm2_ok:
> + raise error.TestError, "Fail to config ip address of VM 2"
> +
> + ping_same_vlan_ok = (session[0].get_command_status(
> + "ping -c 2 %s.12" % subnet2) == 0)
> + if not ping_same_vlan_ok:
> + raise error.TestFail("Fail to ping the guest in same vlan")
> + finally:
> + # Clean the vlan config
> + for i in range(2):
> + session[i].sendline("vconfig rem eth0.%s" % vlans[0])
> + session[i].close()
next prev parent reply other threads:[~2009-10-19 8:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-23 11:19 [PATCH] Test 802.1Q vlan of nic Amos Kong
2009-10-14 10:51 ` [Autotest] " Lucas Meneghel Rodrigues
2009-10-15 9:48 ` Amos Kong
2009-10-19 8:22 ` Dor Laor [this message]
2009-10-21 10:04 ` Amos Kong
[not found] <301351519.552421256044394416.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-10-20 13:19 ` Michael Goldish
2009-10-20 13:38 ` Lucas Meneghel Rodrigues
2009-10-21 10:37 ` Amos Kong
2009-10-21 13:46 ` Uri Lublin
2009-10-21 15:49 ` Dor Laor
2009-10-27 4:10 ` Amos Kong
[not found] <702727267.642641256125764995.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-10-21 11:56 ` Michael Goldish
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4ADC21BD.5080304@redhat.com \
--to=dlaor@redhat.com \
--cc=akong@redhat.com \
--cc=autotest@test.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=lmr@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).