mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
While testing TCP & UDP tests (coming soon), I tracked down a bug in the
IP addressing scheme used by xm-test: each machine running network tests is using the same IP addresses, so two machines in the same network can cross-pollinate/interfere with each other's tests. This patch changes the IP addressing scheme to add some randomness. It's gone through a couple of dozen passes of xm-test, some on -bridge and some on -route, while xm-test was running on another box on the same network. Signed-off-by: Jim Dykman <dykman@us.ibm.com>
This commit is contained in:
1 parent
d8a4248e02
commit
975a49cb6e
1 file changed
+14
-3
@@ -22,6 +22,7 @@
|
||||
import sys;
|
||||
import os;
|
||||
import atexit;
|
||||
import random;
|
||||
|
||||
from Test import *
|
||||
from Xm import *
|
||||
@@ -53,12 +54,22 @@ class XmNetwork:
|
||||
if rc == 0:
|
||||
SKIP("Zeroconf address found: " + out)
|
||||
|
||||
# Randomize one octet of the IP addresses we choose, so that
|
||||
# multiple machines running network tests don't interfere
|
||||
# with each other.
|
||||
self.subnet = random.randint(1,254)
|
||||
|
||||
def calc_ip_address(self, dom, interface):
|
||||
# Generate an IP address from the dom# and eth#:
|
||||
# 169.254.(eth#+153).(dom#+10)
|
||||
# 169.254.(self.subnet).(eth#)*16 + (dom# + 1)
|
||||
ethnum = int(interface[len("eth"):])
|
||||
if (ethnum > 15):
|
||||
raise NetworkError("ethnum > 15 : " + interface)
|
||||
domnum = int(dom[len("dom"):])
|
||||
return "169.254."+ str(ethnum+153) + "." + str(domnum+10)
|
||||
if (domnum > 14):
|
||||
raise NetworkError("domnum > 14 : " + dom)
|
||||
|
||||
return "169.254."+ str(self.subnet) + "." + str(ethnum*16+domnum+1)
|
||||
|
||||
def ip(self, dom, interface, todomname=None, toeth=None, bridge=None):
|
||||
newip = self.calc_ip_address(dom, interface)
|
||||
@@ -96,4 +107,4 @@ class XmNetwork:
|
||||
return newip
|
||||
|
||||
def mask(self, dom, interface):
|
||||
return "255.255.255.0"
|
||||
return "255.255.255.240"
|
||||