diff options
Diffstat (limited to 'tools/xm-test/tests/network/13_network_domU_udp_pos.py')
-rw-r--r-- | tools/xm-test/tests/network/13_network_domU_udp_pos.py | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/tools/xm-test/tests/network/13_network_domU_udp_pos.py b/tools/xm-test/tests/network/13_network_domU_udp_pos.py index b247267f25..140c2291c9 100644 --- a/tools/xm-test/tests/network/13_network_domU_udp_pos.py +++ b/tools/xm-test/tests/network/13_network_domU_udp_pos.py @@ -1,14 +1,16 @@ #!/usr/bin/python # Copyright (C) International Business Machines Corp., 2006 -# Author: <dykman@us.ibm.com> +# Copyright (C) flonatel GmbH & Co. KG, 2009 +# Authors: <dykman@us.ibm.com> +# Andreas Florath <xen@flonatel.org> # UDP tests to domU interface # - creates two guest domains # - sets up a single NIC on each on same subnet # - conducts udp tests to the domU IP address. -# hping2 $domU_IP -2 -c 1 -d $size +# hping2 $domU_IP -1 -c 7 -d $size # where $size = 1, 48, 64, 512, 1440, 1500, 1505, # 4096, 4192, 32767, 65507, 65508 @@ -31,7 +33,7 @@ def netDomain(): FAIL(str(e)) return dom -rc = 0 +fails = "" # Test creates 2 domains, which requires 4 ips: 2 for the domains and 2 for # aliases on dom0 @@ -39,26 +41,36 @@ if xmtest_netconf.canRunNetTest(4) == False: SKIP("Don't have enough free configured IPs to run this test") # Fire up a pair of guest domains w/1 nic each -src = netDomain() -src_console = src.getConsole() -dst = netDomain() +guest1 = netDomain() +guest1_console = guest1.getConsole() +guest1_netdev = guest1.getDevice("eth0") +guest1_ip = guest1_netdev.getNetDevIP() +guest1_dom0_alias_ip = guest1_netdev.dom0_alias_ip +guest2 = netDomain() +guest2_console = guest2.getConsole() +guest2_netdev = guest2.getDevice("eth0") +guest2_ip = guest2_netdev.getNetDevIP() +guest2_dom0_alias_ip = guest2_netdev.dom0_alias_ip +def hping_cmd(ip, size): + return "hping2 " + ip + " -E /dev/urandom -1 -q " \ + + "-c 7 --fast -d " + str(size) + " -N " + str(size) + +# Ping everything from guests try: - # Ping the victim over eth0 - fails="" - dst_netdev = dst.getDevice("eth0") - ip2 = dst_netdev.getNetDevIP() for size in pingsizes: - out = src_console.runCmd("hping2 " + ip2 + " -E /dev/urandom -2 -q " - + "-c 20 --fast -d " + str(size) + " -N " + str(size)) - if out["return"]: - fails += " " + str(size) - print out["output"] + for console in [(guest1_console, "Guest1Console"), + (guest2_console, "Guest2Console")]: + for dest_ip in [guest1_ip, guest1_dom0_alias_ip, + guest2_ip, guest2_dom0_alias_ip ]: + out = console[0].runCmd(hping_cmd(dest_ip, size)) + if out["return"]: + fails += " [%d, %s, %s]" % (size, console[1], dest_ip) except ConsoleError, e: FAIL(str(e)) -src.stop() -dst.stop() +guest1.stop() +guest2.stop() if len(fails): FAIL("UDP hping2 failed for size" + fails + ".") |