From: Lucas Meneghel Rodrigues <lmr@redhat.com>
To: Amos Kong <akong@redhat.com>
Cc: autotest@test.kernel.org, qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [RFC PATCH 05/14] KVM-test: Add a subtest jumbo
Date: Tue, 27 Jul 2010 11:13:32 -0300 [thread overview]
Message-ID: <1280240012.2637.74.camel@freedom> (raw)
In-Reply-To: <20100720013532.2212.70315.stgit@z>
On Tue, 2010-07-20 at 09:35 +0800, Amos Kong wrote:
> According to different nic model set different MTU for it. And ping from guest
> to host, to see whether tested size can be received by host.
>
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> Signed-off-by: Amos Kong <akong@redhat.com>
> ---
> 0 files changed, 0 insertions(+), 0 deletions(-)
>
> diff --git a/client/tests/kvm/tests/jumbo.py b/client/tests/kvm/tests/jumbo.py
> new file mode 100644
> index 0000000..9f56a87
> --- /dev/null
> +++ b/client/tests/kvm/tests/jumbo.py
> @@ -0,0 +1,133 @@
> +import os, re, logging, commands, time, random
> +from autotest_lib.client.common_lib import error
> +import kvm_subprocess, kvm_test_utils, kvm_utils, kvm_net_utils
> +
> +def run_jumbo(test, params, env):
> + """
> + Test the RX jumbo frame function of vnics:
> + 1) boot the vm
> + 2) change the MTU of guest nics and host taps depends on the nic model
^ I think you meant 'depending on the nic model'
> + 3) add the static arp entry for guest nic
> + 4) wait for the MTU ok
> + 5) verify the patch mtu using ping
> + 6) ping the guest with large frames
> + 7) increament size ping
^ typo, increment
> + 8) flood ping the guest with large frames
> + 9) verify the path mtu
> + 10) revocer the mtu
^ maybe a typo, restore?
> +
> + @param test: kvm test object
> + @param params: Dictionary with the test parameters
> + @param env: Dictionary with test environment.
> + """
> +
> + vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
> + session = kvm_test_utils.wait_for_login(vm)
> + mtu = params.get("mtu", "1500")
> + flood_time = params.get("flood_time", "300")
> + max_icmp_pkt_size = int(mtu) - 28
> +
> + ifname = vm.get_ifname(0)
> + ip = vm.get_address(0)
> + if ip is None:
> + raise error.TestError("Could not get the ip address")
> +
> + try:
> + # Environment preparartion
^ typo, preparation
> + ethname = kvm_net_utils.get_linux_ifname(session, vm.get_macaddr(0))
> +
> + logging.info("Changing the mtu of guest ...")
> + guest_mtu_cmd = "ifconfig %s mtu %s" % (ethname , mtu)
> + s, o = session.get_command_status_output(guest_mtu_cmd)
> + if s != 0:
> + logging.error(o)
> + raise error.TestError("Fail to set the mtu of guest nic: %s"
> + % ethname)
> +
> + logging.info("Chaning the mtu of host tap ...")
> + host_mtu_cmd = "ifconfig %s mtu %s" % (ifname, mtu)
> + s, o = commands.getstatusoutput(host_mtu_cmd)
> + if s != 0:
> + raise error.TestError("Fail to set the mtu of %s" % ifname)
> +
> + logging.info("Add a temporary static arp entry ...")
> + arp_add_cmd = "arp -s %s %s -i %s" % (ip, vm.get_macaddr(0), ifname)
> + s, o = commands.getstatusoutput(arp_add_cmd)
> + if s != 0 :
> + raise error.TestError("Fail to add temporary arp entry")
> +
> + def is_mtu_ok():
> + s, o = kvm_net_utils.ping(ip, 1, interface = ifname,
> + packetsize = max_icmp_pkt_size,
> + hint = "do", timeout = 2)
^ please fix the default argument attribution, here and all subsequent
calls
> + if s != 0:
> + return False
> + else:
> + return True
^ Here you could simple use return s != 0
> +
> + def verify_mtu():
> + logging.info("Verify the path mtu")
> + s, o = kvm_net_utils.ping(ip, 10, interface = ifname,
> + packetsize = max_icmp_pkt_size,
> + hint = "do", timeout = 15)
> + if s != 0 :
> + logging.error(o)
> + raise error.TestFail("Path MTU is not as expected")
> + if kvm_net_utils.get_loss_ratio(o) != 0:
> + logging.error(o)
> + raise error.TestFail("Packet loss ratio during mtu verification"
> + " is not zero")
> +
> + def flood_ping():
> + logging.info("Flood with large frames")
> + kvm_net_utils.ping(ip, interface = ifname,
> + packetsize = max_icmp_pkt_size,
> + flood = True, timeout = float(flood_time))
> +
> + def large_frame_ping(count = 100):
> + logging.info("Large frame ping")
> + s, o = kvm_net_utils.ping(ip, count, interface = ifname,
> + packetsize = max_icmp_pkt_size,
> + timeout = float(count) * 2)
> + ratio = kvm_net_utils.get_loss_ratio(o)
> + if ratio != 0:
> + raise error.TestFail("Loss ratio of large frame ping is %s" \
> + % ratio)
^ No need to use the backslash to end line here
> + def size_increase_ping(step = random.randrange(90, 110)):
> + logging.info("Size increase ping")
> + for size in range(0, max_icmp_pkt_size + 1, step):
> + logging.info("Ping %s with size %s" % (ip, size))
> + s, o = kvm_net_utils.ping(ip, 1, interface = ifname,
> + packetsize = size,
> + hint = "do", timeout = 1)
> + if s != 0:
> + s, o = kvm_net_utils.ping(ip, 10, interface = ifname,
> + packetsize = size,
> + adaptive = True, hint = "do",
> + timeout = 20)
> + if kvm_net_utils.get_loss_ratio(o) > 50:
> + raise error.TestFail("ping loss ratio is greater "
> + "than 50% for size %s" % size)
^ How do we stablish 50% as an acceptable packet loss ratio for this
test? Seems high to me, but I might be missing something
> +
> + logging.info("Waiting for the MTU to be OK")
> + # Wait for the MTU is OK
^ Unneeded comment, as we have an info message stating the same thing
> + if not kvm_utils.wait_for(is_mtu_ok, 10, 0, 1):
> + logging.debug(commands.getoutput("ifconfig -a"))
> + raise error.TestError("10 seconds elapsed while the mtu is not"
> + " as expected")
> +
> + # Functional Test
> + verify_mtu()
> + large_frame_ping()
> + size_increase_ping()
> +
> + # Stress test
> + flood_ping()
> + verify_mtu()
> +
> + finally:
> + # Environment clean
> + session.close()
> + logging.info("Removing the temporary arp entry")
> + commands.getstatusoutput("arp -d %s -i %s" % (ip, ifname))
> diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
> index 4f58dc0..7f7b56a 100644
> --- a/client/tests/kvm/tests_base.cfg.sample
> +++ b/client/tests/kvm/tests_base.cfg.sample
> @@ -354,6 +354,9 @@ variants:
> counts = 100
> flood_minutes = 10
>
> + - jumbo: install setup unattended_install.cdrom
> + type = jumbo
> +
> - physical_resources_check: install setup unattended_install.cdrom
> type = physical_resources_check
> catch_uuid_cmd = dmidecode | awk -F: '/UUID/ {print $2}'
> @@ -489,10 +492,16 @@ variants:
> variants:
> - @rtl8139:
> nic_model = rtl8139
> + jumbo:
> + mtu = 1500
> - e1000:
> nic_model = e1000
> + jumbo:
> + mtu = 16110
> - virtio:
> nic_model = virtio
> + jumbo:
> + mtu = 65520
>
>
> # Guests
> @@ -1024,7 +1033,7 @@ variants:
>
> # Windows section
> - @Windows:
> - no autotest linux_s3 vlan_tag ioquit unattended_install.(url|nfs|remote_ks)
> + no autotest linux_s3 vlan_tag ioquit unattended_install.(url|nfs|remote_ks) jumbo
> shutdown_command = shutdown /s /f /t 0
> reboot_command = shutdown /r /f /t 0
> status_test_command = echo %errorlevel%
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Lucas Meneghel Rodrigues <lmr@redhat.com>
To: Amos Kong <akong@redhat.com>
Cc: autotest@test.kernel.org, qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: [Qemu-devel] Re: [RFC PATCH 05/14] KVM-test: Add a subtest jumbo
Date: Tue, 27 Jul 2010 11:13:32 -0300 [thread overview]
Message-ID: <1280240012.2637.74.camel@freedom> (raw)
In-Reply-To: <20100720013532.2212.70315.stgit@z>
On Tue, 2010-07-20 at 09:35 +0800, Amos Kong wrote:
> According to different nic model set different MTU for it. And ping from guest
> to host, to see whether tested size can be received by host.
>
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> Signed-off-by: Amos Kong <akong@redhat.com>
> ---
> 0 files changed, 0 insertions(+), 0 deletions(-)
>
> diff --git a/client/tests/kvm/tests/jumbo.py b/client/tests/kvm/tests/jumbo.py
> new file mode 100644
> index 0000000..9f56a87
> --- /dev/null
> +++ b/client/tests/kvm/tests/jumbo.py
> @@ -0,0 +1,133 @@
> +import os, re, logging, commands, time, random
> +from autotest_lib.client.common_lib import error
> +import kvm_subprocess, kvm_test_utils, kvm_utils, kvm_net_utils
> +
> +def run_jumbo(test, params, env):
> + """
> + Test the RX jumbo frame function of vnics:
> + 1) boot the vm
> + 2) change the MTU of guest nics and host taps depends on the nic model
^ I think you meant 'depending on the nic model'
> + 3) add the static arp entry for guest nic
> + 4) wait for the MTU ok
> + 5) verify the patch mtu using ping
> + 6) ping the guest with large frames
> + 7) increament size ping
^ typo, increment
> + 8) flood ping the guest with large frames
> + 9) verify the path mtu
> + 10) revocer the mtu
^ maybe a typo, restore?
> +
> + @param test: kvm test object
> + @param params: Dictionary with the test parameters
> + @param env: Dictionary with test environment.
> + """
> +
> + vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
> + session = kvm_test_utils.wait_for_login(vm)
> + mtu = params.get("mtu", "1500")
> + flood_time = params.get("flood_time", "300")
> + max_icmp_pkt_size = int(mtu) - 28
> +
> + ifname = vm.get_ifname(0)
> + ip = vm.get_address(0)
> + if ip is None:
> + raise error.TestError("Could not get the ip address")
> +
> + try:
> + # Environment preparartion
^ typo, preparation
> + ethname = kvm_net_utils.get_linux_ifname(session, vm.get_macaddr(0))
> +
> + logging.info("Changing the mtu of guest ...")
> + guest_mtu_cmd = "ifconfig %s mtu %s" % (ethname , mtu)
> + s, o = session.get_command_status_output(guest_mtu_cmd)
> + if s != 0:
> + logging.error(o)
> + raise error.TestError("Fail to set the mtu of guest nic: %s"
> + % ethname)
> +
> + logging.info("Chaning the mtu of host tap ...")
> + host_mtu_cmd = "ifconfig %s mtu %s" % (ifname, mtu)
> + s, o = commands.getstatusoutput(host_mtu_cmd)
> + if s != 0:
> + raise error.TestError("Fail to set the mtu of %s" % ifname)
> +
> + logging.info("Add a temporary static arp entry ...")
> + arp_add_cmd = "arp -s %s %s -i %s" % (ip, vm.get_macaddr(0), ifname)
> + s, o = commands.getstatusoutput(arp_add_cmd)
> + if s != 0 :
> + raise error.TestError("Fail to add temporary arp entry")
> +
> + def is_mtu_ok():
> + s, o = kvm_net_utils.ping(ip, 1, interface = ifname,
> + packetsize = max_icmp_pkt_size,
> + hint = "do", timeout = 2)
^ please fix the default argument attribution, here and all subsequent
calls
> + if s != 0:
> + return False
> + else:
> + return True
^ Here you could simple use return s != 0
> +
> + def verify_mtu():
> + logging.info("Verify the path mtu")
> + s, o = kvm_net_utils.ping(ip, 10, interface = ifname,
> + packetsize = max_icmp_pkt_size,
> + hint = "do", timeout = 15)
> + if s != 0 :
> + logging.error(o)
> + raise error.TestFail("Path MTU is not as expected")
> + if kvm_net_utils.get_loss_ratio(o) != 0:
> + logging.error(o)
> + raise error.TestFail("Packet loss ratio during mtu verification"
> + " is not zero")
> +
> + def flood_ping():
> + logging.info("Flood with large frames")
> + kvm_net_utils.ping(ip, interface = ifname,
> + packetsize = max_icmp_pkt_size,
> + flood = True, timeout = float(flood_time))
> +
> + def large_frame_ping(count = 100):
> + logging.info("Large frame ping")
> + s, o = kvm_net_utils.ping(ip, count, interface = ifname,
> + packetsize = max_icmp_pkt_size,
> + timeout = float(count) * 2)
> + ratio = kvm_net_utils.get_loss_ratio(o)
> + if ratio != 0:
> + raise error.TestFail("Loss ratio of large frame ping is %s" \
> + % ratio)
^ No need to use the backslash to end line here
> + def size_increase_ping(step = random.randrange(90, 110)):
> + logging.info("Size increase ping")
> + for size in range(0, max_icmp_pkt_size + 1, step):
> + logging.info("Ping %s with size %s" % (ip, size))
> + s, o = kvm_net_utils.ping(ip, 1, interface = ifname,
> + packetsize = size,
> + hint = "do", timeout = 1)
> + if s != 0:
> + s, o = kvm_net_utils.ping(ip, 10, interface = ifname,
> + packetsize = size,
> + adaptive = True, hint = "do",
> + timeout = 20)
> + if kvm_net_utils.get_loss_ratio(o) > 50:
> + raise error.TestFail("ping loss ratio is greater "
> + "than 50% for size %s" % size)
^ How do we stablish 50% as an acceptable packet loss ratio for this
test? Seems high to me, but I might be missing something
> +
> + logging.info("Waiting for the MTU to be OK")
> + # Wait for the MTU is OK
^ Unneeded comment, as we have an info message stating the same thing
> + if not kvm_utils.wait_for(is_mtu_ok, 10, 0, 1):
> + logging.debug(commands.getoutput("ifconfig -a"))
> + raise error.TestError("10 seconds elapsed while the mtu is not"
> + " as expected")
> +
> + # Functional Test
> + verify_mtu()
> + large_frame_ping()
> + size_increase_ping()
> +
> + # Stress test
> + flood_ping()
> + verify_mtu()
> +
> + finally:
> + # Environment clean
> + session.close()
> + logging.info("Removing the temporary arp entry")
> + commands.getstatusoutput("arp -d %s -i %s" % (ip, ifname))
> diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
> index 4f58dc0..7f7b56a 100644
> --- a/client/tests/kvm/tests_base.cfg.sample
> +++ b/client/tests/kvm/tests_base.cfg.sample
> @@ -354,6 +354,9 @@ variants:
> counts = 100
> flood_minutes = 10
>
> + - jumbo: install setup unattended_install.cdrom
> + type = jumbo
> +
> - physical_resources_check: install setup unattended_install.cdrom
> type = physical_resources_check
> catch_uuid_cmd = dmidecode | awk -F: '/UUID/ {print $2}'
> @@ -489,10 +492,16 @@ variants:
> variants:
> - @rtl8139:
> nic_model = rtl8139
> + jumbo:
> + mtu = 1500
> - e1000:
> nic_model = e1000
> + jumbo:
> + mtu = 16110
> - virtio:
> nic_model = virtio
> + jumbo:
> + mtu = 65520
>
>
> # Guests
> @@ -1024,7 +1033,7 @@ variants:
>
> # Windows section
> - @Windows:
> - no autotest linux_s3 vlan_tag ioquit unattended_install.(url|nfs|remote_ks)
> + no autotest linux_s3 vlan_tag ioquit unattended_install.(url|nfs|remote_ks) jumbo
> shutdown_command = shutdown /s /f /t 0
> reboot_command = shutdown /r /f /t 0
> status_test_command = echo %errorlevel%
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-07-27 14:13 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-20 1:34 [RFC PATCH 00/14] Patchset of network related subtests Amos Kong
2010-07-20 1:34 ` [Qemu-devel] [Autotest][RFC " Amos Kong
2010-07-20 1:34 ` [RFC PATCH 01/14] KVM-test: Add a new macaddress pool algorithm Amos Kong
2010-07-20 1:34 ` [Qemu-devel] " Amos Kong
2010-07-20 10:19 ` Michael Goldish
2010-07-20 10:19 ` Michael Goldish
2010-07-20 13:44 ` Amos Kong
2010-07-20 15:53 ` Michael Goldish
2010-07-20 15:53 ` Michael Goldish
2010-08-03 1:34 ` Amos Kong
2010-07-27 1:48 ` Lucas Meneghel Rodrigues
2010-07-27 1:48 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-07-20 1:35 ` [RFC PATCH 02/14] KVM Test: Add a function get_interface_name() to kvm_net_utils.py Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 2:08 ` Lucas Meneghel Rodrigues
2010-07-27 2:08 ` Lucas Meneghel Rodrigues
2010-07-28 10:29 ` Michael Goldish
2010-07-28 10:29 ` Michael Goldish
2010-08-03 1:39 ` Amos Kong
2010-07-20 1:35 ` [RFC PATCH 03/14] KVM Test: Add a common ping module for network related tests Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 13:01 ` Lucas Meneghel Rodrigues
2010-07-28 11:50 ` Michael Goldish
2010-07-28 13:56 ` Michael Goldish
2010-07-28 13:56 ` Michael Goldish
2010-07-20 1:35 ` [RFC PATCH 04/14] KVM-test: Add a new subtest ping Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 13:15 ` Lucas Meneghel Rodrigues
2010-07-27 13:15 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-03 1:54 ` Amos Kong
2010-08-03 1:54 ` [Qemu-devel] " Amos Kong
2010-07-20 1:35 ` [RFC PATCH 05/14] KVM-test: Add a subtest jumbo Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 14:13 ` Lucas Meneghel Rodrigues [this message]
2010-07-27 14:13 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-10 7:18 ` Amos Kong
2010-08-10 7:18 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 1:35 ` [RFC PATCH 06/14] KVM-test: Add basic file transfer test Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 14:36 ` Lucas Meneghel Rodrigues
2010-08-10 9:29 ` [Autotest] " Amos Kong
2010-08-10 9:29 ` Amos Kong
2010-07-20 1:35 ` [RFC PATCH 07/14] KVM-test: Add a subtest of load/unload nic driver Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-28 18:12 ` Lucas Meneghel Rodrigues
2010-07-20 1:35 ` [RFC PATCH 08/14] KVM-test: Add a subtest of nic promisc Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-28 21:35 ` Lucas Meneghel Rodrigues
2010-07-28 21:35 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-11 1:34 ` [Autotest] " Amos Kong
2010-08-11 1:34 ` [Qemu-devel] " Amos Kong
2010-07-20 1:36 ` [RFC PATCH 09/14] KVM-test: Add a subtest of multicast Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-28 21:55 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [RFC PATCH 10/14] KVM-test: Add a subtest of pxe Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-28 22:07 ` Lucas Meneghel Rodrigues
2010-08-10 6:11 ` Amos Kong
2010-07-20 1:36 ` [RFC PATCH 11/14] KVM-test: Add a subtest of changing mac address Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-28 22:30 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [RFC PATCH 12/14] KVM-test: Add a subtest of netperf Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-30 16:32 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [RFC PATCH 13/14] KVM-test: Improve vlan subtest Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-20 1:36 ` [RFC PATCH 14/14] KVM-test: Add subtest of testing offload by ethtool Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-08-02 19:10 ` Lucas Meneghel Rodrigues
2010-08-02 19:10 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-10 7:07 ` Amos Kong
2010-08-10 7:07 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 12:12 ` [RFC PATCH 00/14] Patchset of network related subtests Lucas Meneghel Rodrigues
2010-07-20 12:12 ` [Qemu-devel] Re: [Autotest][RFC " Lucas Meneghel Rodrigues
2010-08-02 20:58 ` [RFC " Lucas Meneghel Rodrigues
2010-08-02 20:58 ` [Qemu-devel] Re: [Autotest][RFC " Lucas Meneghel Rodrigues
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=1280240012.2637.74.camel@freedom \
--to=lmr@redhat.com \
--cc=akong@redhat.com \
--cc=autotest@test.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.