aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/xm-test/lib/XmTestLib/NetConfig.py2
-rw-r--r--tools/xm-test/lib/XmTestLib/XenDevice.py2
-rw-r--r--tools/xm-test/tests/network/13_network_domU_udp_pos.py46
3 files changed, 31 insertions, 19 deletions
diff --git a/tools/xm-test/lib/XmTestLib/NetConfig.py b/tools/xm-test/lib/XmTestLib/NetConfig.py
index 857a9a5cca..21be40db48 100644
--- a/tools/xm-test/lib/XmTestLib/NetConfig.py
+++ b/tools/xm-test/lib/XmTestLib/NetConfig.py
@@ -143,7 +143,7 @@ class NetConfig:
for line in lines:
ip = re.search('(\d+\.\d+\.\d+\.\d+)', line)
if ip and self.isIPInRange(ip.group(1)) == True:
- dcmd = 'ip addr del %s dev %s' % (ip.group(1), DOM0_INTF)
+ dcmd = 'ip addr del %s/32 dev %s' % (ip.group(1), DOM0_INTF)
dstatus, doutput = traceCommand(dcmd)
if dstatus:
raise NetworkError("Failed to remove %s aliases: %d" %
diff --git a/tools/xm-test/lib/XmTestLib/XenDevice.py b/tools/xm-test/lib/XmTestLib/XenDevice.py
index 79dfbfc73a..688b39e543 100644
--- a/tools/xm-test/lib/XmTestLib/XenDevice.py
+++ b/tools/xm-test/lib/XmTestLib/XenDevice.py
@@ -217,7 +217,7 @@ class XenNetDevice(XenDevice):
def addDom0AliasCmd(self, dev=DOM0_INTF):
# Method to add start and remove dom0 alias cmds
acmd = 'ip addr add %s dev %s' % (self.dom0_alias_ip, dev)
- rcmd = 'ip addr del %s dev %s' % (self.dom0_alias_ip, dev)
+ rcmd = 'ip addr del %s/32 dev %s' % (self.dom0_alias_ip, dev)
aliascmd = XenNetDevCmd(self, addCmd=acmd, removeCmd=rcmd)
self.dom0_cmds.append(aliascmd)
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 + ".")