From 4705ba42bc50232a1fa1a0c90d133100450bb5a1 Mon Sep 17 00:00:00 2001 From: Claudio-Daniel Freire Date: Thu, 21 Jul 2011 15:12:51 +0200 Subject: [PATCH] Ticket #69: tun/tap port base allows concurrent experiments in the same slice (if configured correctly) --- src/nepi/testbeds/planetlab/execute.py | 2 ++ src/nepi/testbeds/planetlab/metadata.py | 10 +++++++++- test/testbeds/planetlab/execute.py | 5 ++++- test/testbeds/planetlab/integration.py | 3 +++ test/testbeds/planetlab/integration_cross.py | 3 +++ test/testbeds/planetlab/integration_multi.py | 3 +++ test/testbeds/planetlab/integration_ns3.py | 3 +++ 7 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/nepi/testbeds/planetlab/execute.py b/src/nepi/testbeds/planetlab/execute.py index 33ec2080..7b8a19ff 100644 --- a/src/nepi/testbeds/planetlab/execute.py +++ b/src/nepi/testbeds/planetlab/execute.py @@ -123,6 +123,8 @@ class TestbedController(testbed_impl.TestbedController): get_attribute_value("plcUrl") self.logLevel = self._attributes.\ get_attribute_value("plLogLevel") + self.tapPortBase = self._attributes.\ + get_attribute_value("tapPortBase") self._logger.setLevel(getattr(logging,self.logLevel)) diff --git a/src/nepi/testbeds/planetlab/metadata.py b/src/nepi/testbeds/planetlab/metadata.py index dc4f19c1..92e0b983 100644 --- a/src/nepi/testbeds/planetlab/metadata.py +++ b/src/nepi/testbeds/planetlab/metadata.py @@ -328,7 +328,7 @@ def preconfigure_tuniface(testbed_instance, guid): # Set standard TUN attributes if (not element.tun_addr or not element.tun_port) and element.external_iface: element.tun_addr = element.external_iface.address - element.tun_port = 15000 + int(guid) + element.tun_port = testbed_instance.tapPortBase + int(guid) # Set enabled traces traces = testbed_instance._get_traces(guid) @@ -1133,6 +1133,14 @@ testbed_attributes = dict({ "CRITICAL"], "validation_function": validation.is_enum, }), + "tap_port_base": dict({ + "name": "tapPortBase", + "help": "Base port to use when connecting TUN/TAPs. Effective port will be BASE + GUID.", + "type": Attribute.INTEGER, + "value": 15000, + "range": (2000,30000), + "validation_function": validation.is_integer_range(2000,30000) + }), }) class MetadataInfo(metadata.MetadataInfo): diff --git a/test/testbeds/planetlab/execute.py b/test/testbeds/planetlab/execute.py index 758cb04c..15e69b7e 100755 --- a/test/testbeds/planetlab/execute.py +++ b/test/testbeds/planetlab/execute.py @@ -20,9 +20,12 @@ class PlanetLabExecuteTestCase(unittest.TestCase): host1 = "nepi1.pl.sophia.inria.fr" host2 = "nepi2.pl.sophia.inria.fr" - + + port_base = 2000 + (os.getpid() % 1000) * 13 + def setUp(self): self.root_dir = tempfile.mkdtemp() + self.port_base = self.port_base + 100 def tearDown(self): try: diff --git a/test/testbeds/planetlab/integration.py b/test/testbeds/planetlab/integration.py index ccd71ddf..8163a72b 100755 --- a/test/testbeds/planetlab/integration.py +++ b/test/testbeds/planetlab/integration.py @@ -25,8 +25,11 @@ class PlanetLabIntegrationTestCase(unittest.TestCase): host3 = "nepi3.pl.sophia.inria.fr" host4 = "nepi5.pl.sophia.inria.fr" + port_base = 2000 + (os.getpid() % 1000) * 13 + def setUp(self): self.root_dir = tempfile.mkdtemp() + self.port_base = self.port_base + 100 def tearDown(self): try: diff --git a/test/testbeds/planetlab/integration_cross.py b/test/testbeds/planetlab/integration_cross.py index 77850ccf..5477911e 100755 --- a/test/testbeds/planetlab/integration_cross.py +++ b/test/testbeds/planetlab/integration_cross.py @@ -29,8 +29,11 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase): host1pl2 = "planetlab1.utt.fr" host2pl2 = "planetlab2.utt.fr" + port_base = 2000 + (os.getpid() % 1000) * 13 + def setUp(self): self.root_dir = tempfile.mkdtemp() + self.port_base = self.port_base + 100 def tearDown(self): try: diff --git a/test/testbeds/planetlab/integration_multi.py b/test/testbeds/planetlab/integration_multi.py index a501b45b..eaa05431 100755 --- a/test/testbeds/planetlab/integration_multi.py +++ b/test/testbeds/planetlab/integration_multi.py @@ -29,8 +29,11 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase): host1pl2 = "planetlab1.utt.fr" host2pl2 = "planetlab2.utt.fr" + port_base = 2000 + (os.getpid() % 1000) * 13 + def setUp(self): self.root_dir = tempfile.mkdtemp() + self.port_base = self.port_base + 100 def tearDown(self): try: diff --git a/test/testbeds/planetlab/integration_ns3.py b/test/testbeds/planetlab/integration_ns3.py index 459c7738..5671f1ab 100755 --- a/test/testbeds/planetlab/integration_ns3.py +++ b/test/testbeds/planetlab/integration_ns3.py @@ -24,8 +24,11 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase): host3 = "nepi3.pl.sophia.inria.fr" host4 = "nepi5.pl.sophia.inria.fr" + port_base = 2000 + (os.getpid() % 1000) * 13 + def setUp(self): self.root_dir = tempfile.mkdtemp() + self.port_base = self.port_base + 100 def tearDown(self): try: -- 2.47.0