[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] [XM-TEST] Use explicit (IP id==packet size) on hping2 tests to avoid problems with IP id==0



We have run into some xm-test network test failures in the tests that use 
hping2 that are caused by an IP id of 0:

- hping2 uses a packet socket, so must do its own fragmentation when 
sending messages >1500 bytes.
- When fragmenting, hping2 uses the low byte of the PID as the IP id in 
each of the fragmented IP headers.
- The kernel will assign an IP id if it sees the IP id ==  0 in the header 
that hping2 passes down 
   (net/ipv4/raw.c:raw_send_hdrinc())
So if the low byte of the PID is 0, every fragment will get assigned a 
unique IP id by the kernel, and 
reassembly will fail at the destination.

Jim
----------------------------------
Use explicit (IP id==packet size) on hping2 tests to avoid problems with 
IP id==0

Signed-off-by: Jim Dykman <dykman@xxxxxxxxxx>

diff -r dc213d745642 
tools/xm-test/tests/network/03_network_local_tcp_pos.py
--- a/tools/xm-test/tests/network/03_network_local_tcp_pos.py   Mon May 15 
15:32:09 2006
+++ b/tools/xm-test/tests/network/03_network_local_tcp_pos.py   Thu May 18 
14:19:01 2006
@@ -44,7 +44,7 @@
     lofails=""
     for size in trysizes:
         out = console.runCmd("hping2 127.0.0.1 -E /dev/urandom -q -c 20 "
-              + "--fast -d " + str(size))
+              + "--fast -d " + str(size) + " -N " + str(size))
         if out["return"]:
             lofails += " " + str(size)

@@ -54,7 +54,7 @@
     ip = netdev.getNetDevIP()
     for size in trysizes:
         out = console.runCmd("hping2 " + ip + " -E /dev/urandom -q -c 20 
"
-              + "--fast -d "+ str(size))
+              + "--fast -d "+ str(size) + " -N " + str(size))
         if out["return"]:
             eth0fails += " " + str(size)
 except ConsoleError, e:
diff -r dc213d745642 
tools/xm-test/tests/network/04_network_local_udp_pos.py
--- a/tools/xm-test/tests/network/04_network_local_udp_pos.py   Mon May 15 
15:32:09 2006
+++ b/tools/xm-test/tests/network/04_network_local_udp_pos.py   Thu May 18 
14:19:01 2006
@@ -43,7 +43,7 @@
     lofails=""
     for size in trysizes:
         out = console.runCmd("hping2 127.0.0.1 -E /dev/urandom -2 -q -c 
20 "
-              + "--fast -d " + str(size))
+              + "--fast -d " + str(size) + " -N " + str(size))
         if out["return"]:
             lofails += " " + str(size)
             print out["output"]
@@ -54,7 +54,7 @@
     ip = netdev.getNetDevIP()
     for size in trysizes:
         out = console.runCmd("hping2 " + ip + " -E /dev/urandom -2 -q -c 
20 "
-              + "--fast -d " + str(size))
+              + "--fast -d " + str(size) + " -N " + str(size))
         if out["return"]:
             eth0fails += " " + str(size)
             print out["output"]
diff -r dc213d745642 
tools/xm-test/tests/network/06_network_dom0_tcp_pos.py 
--- a/tools/xm-test/tests/network/06_network_dom0_tcp_pos.py    Mon May 15 
15:32:09 2006
+++ b/tools/xm-test/tests/network/06_network_dom0_tcp_pos.py    Thu May 18 
14:19:01 2006
@@ -44,7 +44,7 @@
     dom0ip = netdev.getDom0AliasIP()
     for size in trysizes:
         out = console.runCmd("hping2 " + dom0ip + " -E /dev/urandom -q -c 
20 "
-              + "--fast -d " + str(size))
+              + "--fast -d " + str(size) + " -N " + str(size))
         if out["return"]:
             fails += " " + str(size)
             print out["output"]
diff -r dc213d745642 
tools/xm-test/tests/network/07_network_dom0_udp_pos.py
--- a/tools/xm-test/tests/network/07_network_dom0_udp_pos.py    Mon May 15 
15:32:09 2006
+++ b/tools/xm-test/tests/network/07_network_dom0_udp_pos.py    Thu May 18 
14:19:01 2006
@@ -43,7 +43,7 @@
     dom0ip = netdev.getDom0AliasIP()
     for size in trysizes:
         out = console.runCmd("hping2 " + dom0ip + " -E /dev/urandom -2 -q 
-c 20"
-             + " --fast -d " + str(size))
+             + " --fast -d " + str(size) + " -N " + str(size))
         if out["return"]:
             fails += " " + str(size)
             print out["output"]
diff -r dc213d745642 
tools/xm-test/tests/network/12_network_domU_tcp_pos.py
--- a/tools/xm-test/tests/network/12_network_domU_tcp_pos.py    Mon May 15 
15:32:09 2006
+++ b/tools/xm-test/tests/network/12_network_domU_tcp_pos.py    Thu May 18 
14:19:01 2006
@@ -50,7 +50,7 @@
     ip2 = dst_netdev.getNetDevIP()
     for size in pingsizes:
         out = src_console.runCmd("hping2 " + ip2 + " -E /dev/urandom -q 
-c 20 "
-              + "--fast -d " + str(size))
+              + "--fast -d " + str(size) + " -N " + str(size))
         if out["return"]:
             fails += " " + str(size)
             print out["output"]
diff -r dc213d745642 
tools/xm-test/tests/network/13_network_domU_udp_pos.py
--- a/tools/xm-test/tests/network/13_network_domU_udp_pos.py    Mon May 15 
15:32:09 2006
+++ b/tools/xm-test/tests/network/13_network_domU_udp_pos.py    Thu May 18 
14:19:01 2006
@@ -50,7 +50,7 @@
     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))
+              + "-c 20 --fast -d " + str(size) + " -N " + str(size))
         if out["return"]:
             fails += " " + str(size)
             print out["output"]




Attachment: ipid.patch
Description: Binary data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.