Changed the endpoint_ip and endpoint_prefix attributes of TAP/TUN endpoints for ip...
authorAlina Quereilhac <alina.quereilhac@inria.fr>
Mon, 15 Dec 2014 11:49:53 +0000 (12:49 +0100)
committerAlina Quereilhac <alina.quereilhac@inria.fr>
Mon, 15 Dec 2014 11:49:53 +0000 (12:49 +0100)
18 files changed:
examples/openvswitch/ovs_ping_2switches.py
examples/openvswitch/ovs_ping_3switches_line.py
examples/openvswitch/ovs_ping_3switches_loop.py
examples/openvswitch/ping_over_udpTapTunnel_performance_test_triangleTopo.py
src/nepi/resources/linux/tap.py
src/nepi/resources/planetlab/openvswitch/ovsport.py
src/nepi/resources/planetlab/tap.py
src/nepi/resources/planetlab/vroute.py
test/resources/linux/gretunnel.py
test/resources/linux/ns3/cross_ns3_linux_ping.py [moved from test/resources/linux/ns3/cross_ns3_linux.py with 95% similarity]
test/resources/linux/ns3/ns3dceapplication.py
test/resources/linux/tap.py
test/resources/linux/tun.py
test/resources/linux/udptunnel.py
test/resources/planetlab/gretunnel.py
test/resources/planetlab/tap.py
test/resources/planetlab/tun.py
test/resources/planetlab/udptunnel.py

index f48210f..799917f 100644 (file)
@@ -62,10 +62,10 @@ def add_port(ec, port_name, network, ovs):
     ec.register_connection(port, ovs)
     return port
 
-def add_tap(ec, endpoint_ip, endpoint_prefix, pointopoint, node):
+def add_tap(ec, ip, prefix, pointopoint, node):
     tap = ec.register_resource("planetlab::Tap")
-    ec.set(tap, "endpoint_ip", endpoint_ip)
-    ec.set(tap, "endpoint_prefix", endpoint_prefix)
+    ec.set(tap, "ip", ip)
+    ec.set(tap, "prefix", prefix)
     ec.set(tap, "pointopoint", pointopoint)
     ec.set(tap, "up", True)
     ec.register_connection(tap, node)
@@ -120,8 +120,8 @@ h1_node = add_node(ec, host1, slicename, pl_user, pl_password)
 h2_node = add_node(ec, host2, slicename, pl_user, pl_password)
 
 # Add tap devices
-tap1 = add_tap(ec, "192.168.3.3", 24, "192.168.3.1", h1_node)
-tap2 = add_tap(ec, "192.168.3.4", 24, "192.168.3.2", h2_node)
+tap1 = add_tap(ec, "192.168.3.3", "24", "192.168.3.1", h1_node)
+tap2 = add_tap(ec, "192.168.3.4", "24", "192.168.3.2", h2_node)
 
 # Connect the nodes
 tunnel1 = add_tunnel(ec, port1, tap1)
index 4182d81..d686ef3 100644 (file)
@@ -60,10 +60,10 @@ def add_port(ec, port_name, network, ovs):
     ec.register_connection(port, ovs)
     return port
 
-def add_tap(ec, endpoint_ip, endpoint_prefix, pointopoint, node):
+def add_tap(ec, ip, prefix, pointopoint, node):
     tap = ec.register_resource("planetlab::Tap")
-    ec.set(tap, "endpoint_ip", endpoint_ip)
-    ec.set(tap, "endpoint_prefix", endpoint_prefix)
+    ec.set(tap, "ip", ip)
+    ec.set(tap, "prefix", prefix)
     ec.set(tap, "pointopoint", pointopoint)
     ec.set(tap, "up", True)
     ec.register_connection(tap, node)
@@ -126,9 +126,9 @@ h2_node = add_node(ec, host2, slicename, pl_user, pl_password)
 h3_node = add_node(ec, host3, slicename, pl_user, pl_password)
 
 # Add tap devices
-tap1 = add_tap(ec, "192.168.3.1", 24, "192.168.3.2", h1_node)
-tap2 = add_tap(ec, "192.168.3.3", 24, "192.168.3.4", h2_node)
-tap3 = add_tap(ec, "192.168.3.5", 24, "192.168.3.6", h3_node)
+tap1 = add_tap(ec, "192.168.3.1", "24", "192.168.3.2", h1_node)
+tap2 = add_tap(ec, "192.168.3.3", "24", "192.168.3.4", h2_node)
+tap3 = add_tap(ec, "192.168.3.5", "24", "192.168.3.6", h3_node)
 
 # Connect the nodes
 tunnel1 = add_tunnel(ec, port1, tap1)
index 3052b78..72a6fad 100644 (file)
@@ -70,10 +70,10 @@ def add_port(ec, port_name, network, ovs):
     ec.register_connection(port, ovs)
     return port
 
-def add_tap(ec, endpoint_ip, endpoint_prefix, pointopoint, node):
+def add_tap(ec, ip, prefix, pointopoint, node):
     tap = ec.register_resource("planetlab::Tap")
-    ec.set(tap, "endpoint_ip", endpoint_ip)
-    ec.set(tap, "endpoint_prefix", endpoint_prefix)
+    ec.set(tap, "ip", ip)
+    ec.set(tap, "prefix", prefix)
     ec.set(tap, "pointopoint", pointopoint)
     ec.set(tap, "up", True)
     ec.register_connection(tap, node)
@@ -139,9 +139,9 @@ h2_node = add_node(ec, host2, slicename, pl_user, pl_password)
 h3_node = add_node(ec, host3, slicename, pl_user, pl_password)
 
 # Add tap devices
-tap1 = add_tap(ec, "192.168.3.1", 24, "192.168.3.2", h1_node)
-tap2 = add_tap(ec, "192.168.3.3", 24, "192.168.3.4", h2_node)
-tap3 = add_tap(ec, "192.168.3.5", 24, "192.168.3.6", h3_node)
+tap1 = add_tap(ec, "192.168.3.1", "24", "192.168.3.2", h1_node)
+tap2 = add_tap(ec, "192.168.3.3", "24", "192.168.3.4", h2_node)
+tap3 = add_tap(ec, "192.168.3.5", "24", "192.168.3.6", h3_node)
 
 # Connect the nodes
 tunnel1 = add_tunnel(ec, port1, tap1)
index 51aa60d..5032822 100644 (file)
@@ -50,10 +50,10 @@ def add_node(ec, host, user):
     ec.set(node, "cleanProcesses", True)
     return node
 
-def add_tap(ec, endpoint_ip, endpoint_prefix, pointopoint, node):
+def add_tap(ec, ip, prefix, pointopoint, node):
     tap = ec.register_resource("planetlab::Tap")
-    ec.set(tap, "endpoint_ip", endpoint_ip)
-    ec.set(tap, "endpoint_prefix", endpoint_prefix)
+    ec.set(tap, "ip", ip)
+    ec.set(tap, "prefix", prefix)
     ec.set(tap, "pointopoint", pointopoint)
     ec.set(tap, "up", True)
     ec.register_connection(tap, node)
@@ -94,28 +94,28 @@ ec = ExperimentController(exp_id = "test-tap-tunnel")
      
 ## Create The topology ##   
 host1 = add_node(ec, hostname_host1, user)
-tap1 = add_tap(ec, "192.168.3.1", 24, "192.168.3.2", host1)
+tap1 = add_tap(ec, "192.168.3.1", "24", "192.168.3.2", host1)
 
 switch1 = add_node(ec, hostname_switch1, user)
-tap2 = add_tap(ec, "192.168.3.2", 24, "192.168.3.1", switch1)
-tap102 = add_tap(ec, "192.168.3.102", 29, "192.168.3.104", switch1)
-tap152 = add_tap(ec, "192.168.3.152", 29, "192.168.3.156", switch1)
+tap2 = add_tap(ec, "192.168.3.2", "24", "192.168.3.1", switch1)
+tap102 = add_tap(ec, "192.168.3.102", "29", "192.168.3.104", switch1)
+tap152 = add_tap(ec, "192.168.3.152", "29", "192.168.3.156", switch1)
 
 host2 = add_node(ec, hostname_host2, user)
-tap13 = add_tap(ec, "192.168.3.13", 24, "192.168.3.14", host2)
+tap13 = add_tap(ec, "192.168.3.13", "24", "192.168.3.14", host2)
 
 switch2 = add_node(ec, hostname_switch2, user)
-tap14 = add_tap(ec, "192.168.3.14", 24, "192.168.3.13", switch2)
-tap104 = add_tap(ec, "192.168.3.104", 29, "192.168.3.102", switch2)
-tap204 = add_tap(ec, "192.168.3.204", 29, "192.168.3.206", switch2)
+tap14 = add_tap(ec, "192.168.3.14", "24", "192.168.3.13", switch2)
+tap104 = add_tap(ec, "192.168.3.104", "29", "192.168.3.102", switch2)
+tap204 = add_tap(ec, "192.168.3.204", "29", "192.168.3.206", switch2)
 
 host3 = add_node(ec, hostname_host3, user)
-tap25 = add_tap(ec, "192.168.3.25", 24, "192.168.3.26", host3)
+tap25 = add_tap(ec, "192.168.3.25", "24", "192.168.3.26", host3)
 
 switch3 = add_node(ec, hostname_switch3, user)
-tap26 = add_tap(ec, "192.168.3.26", 24, "192.168.3.25", switch3)
-tap156 = add_tap(ec, "192.168.3.156", 29, "192.168.3.152", switch3)
-tap206 = add_tap(ec, "192.168.3.206", 29, "192.168.3.204", switch3)
+tap26 = add_tap(ec, "192.168.3.26", "24", "192.168.3.25", switch3)
+tap156 = add_tap(ec, "192.168.3.156", "29", "192.168.3.152", switch3)
+tap206 = add_tap(ec, "192.168.3.206", "29", "192.168.3.204", switch3)
 
 ## Create the UDP Tunnel ## 
 udptun1 = add_udptun(ec, tap1, tap2)
index 636e471..685db9e 100644 (file)
@@ -39,14 +39,13 @@ class LinuxTap(LinuxApplication):
 
     @classmethod
     def _register_attributes(cls):
-        endpoint_ip = Attribute("endpoint_ip", "IPv4 Address",
+        ip = Attribute("ip", "IPv4 Address",
               flags = Flags.Design)
 
         mac = Attribute("mac", "MAC Address",
                 flags = Flags.Design)
 
-        endpoint_prefix = Attribute("endpoint_prefix", "IPv4 network prefix",
-                type = Types.Integer,
+        prefix = Attribute("prefix", "IPv4 network prefix",
                 flags = Flags.Design)
 
         mtu = Attribute("mtu", "Maximum transmition unit for device",
@@ -85,9 +84,9 @@ class LinuxTap(LinuxApplication):
                 "Bash script to be executed before releasing the resource",
                 flags = Flags.Design)
 
-        cls._register_attribute(endpoint_ip)
+        cls._register_attribute(ip)
         cls._register_attribute(mac)
-        cls._register_attribute(endpoint_prefix)
+        cls._register_attribute(prefix)
         cls._register_attribute(mtu)
         cls._register_attribute(devname)
         cls._register_attribute(up)
@@ -334,14 +333,15 @@ class LinuxTap(LinuxApplication):
     def _udp_connect_command(self, remote_endpoint, connection_run_home, 
             cipher, cipher_key, bwlimit, txqueuelen):
 
-        # Set the remote endpoint
-        self.set("pointopoint", remote_endpoint.get("endpoint_ip"))
+        # Set the remote endpoint to the IP of the device
+        self.set("pointopoint", remote_endpoint.get("ip"))
         
         # Planetlab TAPs always use PI headers
         from nepi.resources.planetlab.tap import PlanetlabTap
         if self.is_rm_instance(PlanetlabTap.get_rtype()):
             self.set("pi", True)
 
+        # Public IP of the remote NODE to stablish tunnel
         remote_ip = remote_endpoint.node.get("ip")
 
         local_port_file = os.path.join(self.run_home, 
@@ -390,8 +390,9 @@ class LinuxTap(LinuxApplication):
         return command
 
     def _gre_connect_command(self, remote_endpoint, connection_run_home): 
-        # Set the remote endpoint
-        self.set("pointopoint", remote_endpoint.get("endpoint_ip"))
+        # Set the remote endpoint to (private) device IP
+        self.set("pointopoint", remote_endpoint.get("ip"))
+        ## public node IP
         self.set("greRemote", remote_endpoint.node.get("ip"))
 
         # Generate GRE connect command
@@ -478,9 +479,9 @@ class LinuxTap(LinuxApplication):
                 self.vif_prefix,
                 "pi" if self.get("pi") else ""))
             start_command.append("sudo -S ip link set %s up" % self.get("deviceName"))
-            start_command.append("sudo -S ip addr add %s/%d dev %s" % (
-                self.get("endpoint_ip"),
-                self.get("endpoint_prefix"),
+            start_command.append("sudo -S ip addr add %s/%s dev %s" % (
+                self.get("ip"),
+                self.get("prefix"),
                 self.get("deviceName"),
                 ))
 
@@ -512,11 +513,11 @@ class LinuxTap(LinuxApplication):
                 self.node.get("ip"),
                 self.get("greKey")
             ))
-        command.append("sudo -S ip addr add %s/%d peer %s/%d dev %s" % (
-                self.get("endpoint_ip"),
-                self.get("endpoint_prefix"),
+        command.append("sudo -S ip addr add %s/%s peer %s/%s dev %s" % (
+                self.get("ip"),
+                self.get("prefix"),
                 self.get("pointopoint"),
-                self.get("endpoint_prefix"),
+                self.get("prefix"),
                 self.get("deviceName"),
                 ))
         command.append("sudo -S ip link set %s up " % self.get("deviceName"))
index 9bdc415..db2609f 100644 (file)
@@ -53,7 +53,7 @@ class OVSPort(LinuxApplication):
         """
         port_name = Attribute("port_name", "Name of the port",
             flags = Flags.Design)                      
-        endpoint_ip = Attribute("endpoint_ip", "IP of the endpoint. This is the attribute " 
+        ip = Attribute("ip", "IP of the endpoint. This is the attribute " 
                                 "you should use to establish a tunnel or a remote "
                                 "connection between endpoint",
             flags = Flags.Design)
@@ -61,7 +61,7 @@ class OVSPort(LinuxApplication):
             flags = Flags.Design)      
 
         cls._register_attribute(port_name)
-        cls._register_attribute(endpoint_ip)
+        cls._register_attribute(ip)
         cls._register_attribute(network)
 
     def __init__(self, ec, guid):
@@ -278,7 +278,7 @@ class OVSPort(LinuxApplication):
 
         self.create_port()
         end_ip = self.ovsswitch.get('virtual_ip_pref').split('/')
-        self.set("endpoint_ip", end_ip[0])
+        self.set("ip", end_ip[0])
 
         #Check the status of the OVS Switch
         self.ovsswitch.ovs_status()
index e59e94a..2f2975a 100644 (file)
@@ -36,7 +36,7 @@ class PlanetlabTap(LinuxApplication):
 
     @classmethod
     def _register_attributes(cls):
-        endpoint_ip = Attribute("endpoint_ip", "IP of the endpoint. This is the attribute " 
+        ip = Attribute("ip", "IP of the endpoint. This is the attribute " 
                                 "you should use to establish a tunnel or a remote "
                                 "connection between endpoint",
               flags = Flags.Design)
@@ -44,8 +44,7 @@ class PlanetlabTap(LinuxApplication):
         mac = Attribute("mac", "MAC Address",
                 flags = Flags.Design)
 
-        endpoint_prefix = Attribute("endpoint_prefix", "IPv4 network prefix of the endpoint",
-                type = Types.Integer,
+        prefix = Attribute("prefix", "IPv4 network prefix of the endpoint",
                 flags = Flags.Design)
 
         mtu = Attribute("mtu", "Maximum transmition unit for device",
@@ -84,9 +83,9 @@ class PlanetlabTap(LinuxApplication):
                 "Bash script to be executed before releasing the resource",
                 flags = Flags.Design)
 
-        cls._register_attribute(endpoint_ip)
+        cls._register_attribute(ip)
         cls._register_attribute(mac)
-        cls._register_attribute(endpoint_prefix)
+        cls._register_attribute(prefix)
         cls._register_attribute(mtu)
         cls._register_attribute(devname)
         cls._register_attribute(up)
@@ -342,14 +341,12 @@ class PlanetlabTap(LinuxApplication):
 
         return True
 
-
     def initiate_udp_connection(self, remote_endpoint, connection_app_home, 
             connection_run_home, cipher, cipher_key, bwlimit, txqueuelen):
         port = self.udp_connect(remote_endpoint, connection_app_home, 
             connection_run_home, cipher, cipher_key, bwlimit, txqueuelen)
         return port
 
-
     def udp_connect(self, remote_endpoint, connection_app_home, 
             connection_run_home, cipher, cipher_key, bwlimit, txqueuelen):
         udp_connect_command = self._udp_connect_command(
@@ -393,9 +390,10 @@ class PlanetlabTap(LinuxApplication):
     def _udp_connect_command(self, remote_endpoint, connection_run_home, 
             cipher, cipher_key, bwlimit, txqueuelen):
 
-        # Set the remote endpoint
-        self.set("pointopoint", remote_endpoint.get("endpoint_ip"))
+        # Set the remote endpoint, (private) IP of the device
+        self.set("pointopoint", remote_endpoint.get("ip"))
 
+        # Public IP of the node
         remote_ip = remote_endpoint.node.get("ip")
 
         local_port_file = os.path.join(self.run_home, 
@@ -500,11 +498,10 @@ class PlanetlabTap(LinuxApplication):
 
         return result
 
-
-
     def _gre_connect_command(self, remote_endpoint, connection_run_home): 
-        # Set the remote endpoint
-        self.set("pointopoint", remote_endpoint.get("endpoint_ip"))
+        # Set the remote endpoint, (private) IP of the device
+        self.set("pointopoint", remote_endpoint.get("ip"))
+        # Public IP of the node
         self.set("greRemote", remote_endpoint.node.get("ip"))
 
         # Generate GRE connect command
@@ -526,7 +523,6 @@ class PlanetlabTap(LinuxApplication):
 
         return command
 
-
     @property
     def _start_command(self):
         if self.gre_enabled:
@@ -535,8 +531,8 @@ class PlanetlabTap(LinuxApplication):
             command = ["sudo -S python ${SRC}/pl-vif-create.py"]
             
             command.append("-t %s" % self.vif_type)
-            command.append("-a %s" % self.get("endpoint_ip"))
-            command.append("-n %d" % self.get("endpoint_prefix"))
+            command.append("-a %s" % self.get("ip"))
+            command.append("-n %s" % self.get("prefix"))
             command.append("-f %s " % self.vif_name_file)
             command.append("-S %s " % self.sock_name)
 
@@ -578,8 +574,8 @@ class PlanetlabTap(LinuxApplication):
         command.append("-u %s" % self.node.get("username"))
         command.append("-N %s" % device_name)
         command.append("-t %s" % self.vif_type)
-        command.append("-a %s" % self.get("endpoint_ip"))
-        command.append("-n %d" % self.get("endpoint_prefix"))
+        command.append("-a %s" % self.get("ip"))
+        command.append("-n %s" % self.get("prefix"))
 
         if self.get("snat") == True:
             command.append("-s")
index 3c10d78..b2568b3 100644 (file)
@@ -147,7 +147,7 @@ class PlanetlabVroute(LinuxApplication):
         command = ["sudo -S python ${SRC}/pl-vroute.py"]
         command.append("-a %s" % self.get("action"))
         command.append("-n %s" % self.get("network"))
-        command.append("-p %d" % self.tap.get("endpoint_prefix"))
+        command.append("-p %s" % self.tap.get("prefix"))
         command.append("-g %s" % self.tap.get("pointopoint"))
         command.append("-f %s" % self.tap.get("deviceName"))
         return " ".join(command)
@@ -157,7 +157,7 @@ class PlanetlabVroute(LinuxApplication):
         command = ["sudo -S python ${SRC}/pl-vroute.py"]
         command.append("-a %s" % "del")
         command.append("-n %s" % self.get("network"))
-        command.append("-p %d" % self.tap.get("endpoint_prefix"))
+        command.append("-p %s" % self.tap.get("prefix"))
         command.append("-g %s" % self.tap.get("pointopoint"))
         command.append("-f %s" % self.tap.get("deviceName"))
         return " ".join(command)
index 0d55fc7..a4f7d01 100755 (executable)
@@ -51,8 +51,8 @@ class LinuxGRETunnelTestCase(unittest.TestCase):
         ec.set(node1, "cleanProcesses", True)
 
         tap1 = ec.register_resource("linux::Tap")
-        ec.set(tap1, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tap1, "endpoint_prefix", 32)
+        ec.set(tap1, "ip", "%s.1" % self.netblock)
+        ec.set(tap1, "prefix", "32")
         ec.register_connection(tap1, node1)
 
         node2 = ec.register_resource("linux::Node")
@@ -63,8 +63,8 @@ class LinuxGRETunnelTestCase(unittest.TestCase):
         ec.set(node2, "cleanProcesses", True)
 
         tap2 = ec.register_resource("linux::Tap")
-        ec.set(tap2, "endpoint_ip", "%s.2" % self.netblock)
-        ec.set(tap2, "endpoint_prefix", 32)
+        ec.set(tap2, "ip", "%s.2" % self.netblock)
+        ec.set(tap2, "prefix", "32")
         ec.register_connection(tap2, node2)
 
         gretun = ec.register_resource("linux::GRETunnel")
@@ -106,8 +106,8 @@ class LinuxGRETunnelTestCase(unittest.TestCase):
         ec.set(node1, "cleanProcesses", True)
 
         tun1 = ec.register_resource("linux::Tun")
-        ec.set(tun1, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tun1, "endpoint_prefix", 32)
+        ec.set(tun1, "ip", "%s.1" % self.netblock)
+        ec.set(tun1, "prefix", "32")
         ec.register_connection(tun1, node1)
 
         node2 = ec.register_resource("linux::Node")
@@ -118,8 +118,8 @@ class LinuxGRETunnelTestCase(unittest.TestCase):
         ec.set(node2, "cleanProcesses", True)
 
         tun2 = ec.register_resource("linux::Tun")
-        ec.set(tun2, "endpoint_ip", "%s.2" % self.netblock)
-        ec.set(tun2, "endpoint_prefix", 32)
+        ec.set(tun2, "ip", "%s.2" % self.netblock)
+        ec.set(tun2, "prefix", "32")
         ec.register_connection(tun2, node2)
 
         udptun = ec.register_resource("linux::GRETunnel")
similarity index 95%
rename from test/resources/linux/ns3/cross_ns3_linux.py
rename to test/resources/linux/ns3/cross_ns3_linux_ping.py
index e7fc196..9c84930 100755 (executable)
@@ -54,6 +54,14 @@ def add_fd_device(ec, node, ip, prefix):
 
     return dev
 
+def add_tap_device(ec, node, ip, prefix):
+    dev = ec.register_resource("linux::Tap")
+    ec.set(dev, "ip", ip)
+    ec.set(dev, "prefix", prefix)
+    ec.register_connection(node, dev)
+    
+    return dev
+
 def add_point2point_device(ec, node, ip, prefix):
     dev = ec.register_resource("ns3::PointToPointNetDevice")
     ec.set(dev, "ip", ip)
@@ -118,10 +126,7 @@ class LinuxNS3FdNetDeviceTest(unittest.TestCase):
         ec.enable_trace(fddev, "promiscPcap")
         ec.enable_trace(fddev, "ascii")
 
-        tap = ec.register_resource("linux::Tap")
-        ec.set(tap, "endpoint_ip", "10.0.1.1")
-        ec.set(tap, "endpoint_prefix", 30)
-        ec.register_connection(tap, node)
+        tap = add_tap_device(ec, node, "10.0.1.1", "30")
 
         crosslink = ec.register_resource("linux::ns3::TapFdLink")
         ec.register_connection(crosslink, tap)
index c24d07d..f6ff304 100755 (executable)
@@ -153,7 +153,7 @@ class LinuxNS3DceApplicationTest(unittest.TestCase):
             ec.set(node, "identity", identity)
 
         ec.set(node, "cleanProcesses", True)
-        #ec.set(node, "cleanHome", True)
+        #ec.set(node, "cleanExperiment", True)
 
         simu = ec.register_resource("linux::ns3::Simulation")
         ec.set(simu, "verbose", True)
index 109fbb6..7f5c07a 100755 (executable)
@@ -34,20 +34,23 @@ class LinuxTapTestCase(unittest.TestCase):
         self.netblock = "192.168.1"
 
     @skipIfNotAlive
-    def t_tap_create(self, host, user, identity):
+    def t_tap_create(self, host, user=None, identity=None):
 
-        ec = ExperimentController(exp_id = "test-tap-create")
+        ec = ExperimentController(exp_id="test-tap-create")
         
         node = ec.register_resource("linux::Node")
         ec.set(node, "hostname", host)
-        ec.set(node, "username", user)
-        ec.set(node, "identity", identity)
+
+        if host != "localhost":
+            ec.set(node, "username", user)
+            ec.set(node, "identity", identity)
+
         ec.set(node, "cleanExperiment", True)
         ec.set(node, "cleanProcesses", True)
 
         tap = ec.register_resource("linux::Tap")
-        ec.set(tap, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tap, "endpoint_prefix", 24)
+        ec.set(tap, "ip", "%s.1" % self.netblock)
+        ec.set(tap, "prefix", "24")
         ec.register_connection(tap, node)
 
         app = ec.register_resource("linux::Application")
@@ -59,7 +62,7 @@ class LinuxTapTestCase(unittest.TestCase):
 
         ec.wait_finished(app)
 
-        ping = ec.trace(app, 'stdout')
+        ping = ec.trace(app, "stdout")
         expected = """3 packets transmitted, 3 received, 0% packet loss"""
         self.assertTrue(ping.find(expected) > -1)
         
@@ -71,6 +74,10 @@ class LinuxTapTestCase(unittest.TestCase):
     def test_tap_create(self):
         self.t_tap_create(self.host, self.user, self.identity)
 
+    def test_tap_create_local(self):
+        self.t_tap_create("localhost")
+
+
 if __name__ == '__main__':
     unittest.main()
 
index c9402bd..8164db3 100755 (executable)
@@ -34,20 +34,23 @@ class LinuxTunTestCase(unittest.TestCase):
         self.netblock = "192.168.1"
 
     @skipIfNotAlive
-    def t_tun_create(self, host, user, identity):
+    def t_tun_create(self, host, user=None, identity=None):
 
-        ec = ExperimentController(exp_id = "test-tun-create")
+        ec = ExperimentController(exp_id="test-tun-create")
         
         node = ec.register_resource("linux::Node")
         ec.set(node, "hostname", host)
-        ec.set(node, "username", user)
-        ec.set(node, "identity", identity)
+
+        if host != "localhost":
+            ec.set(node, "username", user)
+            ec.set(node, "identity", identity)
+
         ec.set(node, "cleanExperiment", True)
         ec.set(node, "cleanProcesses", True)
 
         tun = ec.register_resource("linux::Tun")
-        ec.set(tun, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tun, "endpoint_prefix", 24)
+        ec.set(tun, "ip", "%s.1" % self.netblock)
+        ec.set(tun, "prefix", "24")
         ec.register_connection(tun, node)
 
         app = ec.register_resource("linux::Application")
@@ -59,7 +62,7 @@ class LinuxTunTestCase(unittest.TestCase):
 
         ec.wait_finished(app)
 
-        ping = ec.trace(app, 'stdout')
+        ping = ec.trace(app, "stdout")
         expected = """3 packets transmitted, 3 received, 0% packet loss"""
         self.assertTrue(ping.find(expected) > -1)
         
@@ -71,6 +74,10 @@ class LinuxTunTestCase(unittest.TestCase):
     def test_tun_create(self):
         self.t_tun_create(self.host, self.user, self.identity)
 
+    def test_tun_create_local(self):
+        self.t_tun_create("localhost")
+
+
 if __name__ == '__main__':
     unittest.main()
 
index a3089d8..59c53de 100755 (executable)
@@ -39,7 +39,7 @@ class LinuxUdpTunnelTestCase(unittest.TestCase):
     def t_tap_udp_tunnel(self, user1, host1, identity1, user2, host2, 
             identity2):
 
-        ec = ExperimentController(exp_id = "test-tap-udp-tunnel")
+        ec = ExperimentController(exp_id="test-tap-udp-tunnel")
         
         node1 = ec.register_resource("linux::Node")
         ec.set(node1, "hostname", host1)
@@ -49,8 +49,8 @@ class LinuxUdpTunnelTestCase(unittest.TestCase):
         ec.set(node1, "cleanProcesses", True)
 
         tap1 = ec.register_resource("linux::Tap")
-        ec.set(tap1, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tap1, "endpoint_prefix", 32)
+        ec.set(tap1, "ip", "%s.1" % self.netblock)
+        ec.set(tap1, "prefix", "32")
         ec.register_connection(tap1, node1)
 
         node2 = ec.register_resource("linux::Node")
@@ -61,8 +61,8 @@ class LinuxUdpTunnelTestCase(unittest.TestCase):
         ec.set(node2, "cleanProcesses", True)
 
         tap2 = ec.register_resource("linux::Tap")
-        ec.set(tap2, "endpoint_ip", "%s.2" % self.netblock)
-        ec.set(tap2, "endpoint_prefix", 32)
+        ec.set(tap2, "ip", "%s.2" % self.netblock)
+        ec.set(tap2, "prefix", "32")
         ec.register_connection(tap2, node2)
 
         udptun = ec.register_resource("linux::UdpTunnel")
@@ -78,7 +78,7 @@ class LinuxUdpTunnelTestCase(unittest.TestCase):
 
         ec.wait_finished(app)
 
-        ping = ec.trace(app, 'stdout')
+        ping = ec.trace(app, "stdout")
         expected = """3 packets transmitted, 3 received, 0% packet loss"""
         self.assertTrue(ping.find(expected) > -1)
         
@@ -93,7 +93,7 @@ class LinuxUdpTunnelTestCase(unittest.TestCase):
     @skipIfAnyNotAliveWithIdentity
     def t_tun_udp_tunnel(self, user1, host1, identity1, user2, host2, identity2):
 
-        ec = ExperimentController(exp_id = "test-tun-udp-tunnel")
+        ec = ExperimentController(exp_id="test-tun-udp-tunnel")
         
         node1 = ec.register_resource("linux::Node")
         ec.set(node1, "hostname", host1)
@@ -103,8 +103,8 @@ class LinuxUdpTunnelTestCase(unittest.TestCase):
         ec.set(node1, "cleanProcesses", True)
 
         tun1 = ec.register_resource("linux::Tun")
-        ec.set(tun1, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tun1, "endpoint_prefix", 32)
+        ec.set(tun1, "ip", "%s.1" % self.netblock)
+        ec.set(tun1, "prefix", "32")
         ec.register_connection(tun1, node1)
 
         node2 = ec.register_resource("linux::Node")
@@ -115,8 +115,8 @@ class LinuxUdpTunnelTestCase(unittest.TestCase):
         ec.set(node2, "cleanProcesses", True)
 
         tun2 = ec.register_resource("linux::Tun")
-        ec.set(tun2, "endpoint_ip", "%s.2" % self.netblock)
-        ec.set(tun2, "endpoint_prefix", 32)
+        ec.set(tun2, "ip", "%s.2" % self.netblock)
+        ec.set(tun2, "prefix", "32")
         ec.register_connection(tun2, node2)
 
         udptun = ec.register_resource("linux::UdpTunnel")
@@ -132,7 +132,7 @@ class LinuxUdpTunnelTestCase(unittest.TestCase):
 
         ec.wait_finished(app)
 
-        ping = ec.trace(app, 'stdout')
+        ping = ec.trace(app, "stdout")
         expected = """3 packets transmitted, 3 received, 0% packet loss"""
         self.assertTrue(ping.find(expected) > -1)
         
index 460261f..74197f1 100755 (executable)
@@ -43,32 +43,30 @@ class PlanetLabGRETunnelTestCase(unittest.TestCase):
     def t_tap_gre_tunnel(self, user1, host1, identity1, user2, host2, 
             identity2):
 
-        ec = ExperimentController(exp_id = "test-tap-gre-tunnel")
+        ec = ExperimentController(exp_id="test-tap-gre-tunnel")
         
         node1 = ec.register_resource("planetlab::Node")
         ec.set(node1, "hostname", host1)
         ec.set(node1, "username", user1)
         ec.set(node1, "identity", identity1)
-        #ec.set(node1, "cleanHome", True)
         ec.set(node1, "cleanExperiment", True)
         ec.set(node1, "cleanProcesses", True)
 
         tap1 = ec.register_resource("planetlab::Tap")
-        ec.set(tap1, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tap1, "endpoint_prefix", 24)
+        ec.set(tap1, "ip", "%s.1" % self.netblock)
+        ec.set(tap1, "prefix", "24")
         ec.register_connection(tap1, node1)
 
         node2 = ec.register_resource("planetlab::Node")
         ec.set(node2, "hostname", host2)
         ec.set(node2, "username", user2)
         ec.set(node2, "identity", identity2)
-        #ec.set(node2, "cleanHome", True)
         ec.set(node2, "cleanExperiment", True)
         ec.set(node2, "cleanProcesses", True)
 
         tap2 = ec.register_resource("planetlab::Tap")
-        ec.set(tap2, "endpoint_ip", "%s.2" % self.netblock)
-        ec.set(tap2, "endpoint_prefix", 24)
+        ec.set(tap2, "ip", "%s.2" % self.netblock)
+        ec.set(tap2, "prefix", "24")
         ec.register_connection(tap2, node2)
 
         gretun = ec.register_resource("linux::GRETunnel")
@@ -84,7 +82,7 @@ class PlanetLabGRETunnelTestCase(unittest.TestCase):
 
         ec.wait_finished(app)
 
-        ping = ec.trace(app, 'stdout')
+        ping = ec.trace(app, "stdout")
         expected = """3 packets transmitted, 3 received, 0% packet loss"""
         self.assertTrue(ping.find(expected) > -1)
         
@@ -100,32 +98,30 @@ class PlanetLabGRETunnelTestCase(unittest.TestCase):
     def t_tun_gre_tunnel(self, user1, host1, identity1, user2, host2, 
             identity2):
 
-        ec = ExperimentController(exp_id = "test-tun-gre-tunnel")
+        ec = ExperimentController(exp_id="test-tun-gre-tunnel")
         
         node1 = ec.register_resource("planetlab::Node")
         ec.set(node1, "hostname", host1)
         ec.set(node1, "username", user1)
         ec.set(node1, "identity", identity1)
-        #ec.set(node1, "cleanHome", True)
         ec.set(node1, "cleanExperiment", True)
         ec.set(node1, "cleanProcesses", True)
 
         tun1 = ec.register_resource("planetlab::Tun")
-        ec.set(tun1, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tun1, "endpoint_prefix", 24)
+        ec.set(tun1, "ip", "%s.1" % self.netblock)
+        ec.set(tun1, "prefix", "24")
         ec.register_connection(tun1, node1)
 
         node2 = ec.register_resource("planetlab::Node")
         ec.set(node2, "hostname", host2)
         ec.set(node2, "username", user2)
         ec.set(node2, "identity", identity2)
-        #ec.set(node2, "cleanHome", True)
         ec.set(node2, "cleanExperiment", True)
         ec.set(node2, "cleanProcesses", True)
 
         tun2 = ec.register_resource("planetlab::Tun")
-        ec.set(tun2, "endpoint_ip", "%s.2" % self.netblock)
-        ec.set(tun2, "endpoint_prefix", 24)
+        ec.set(tun2, "ip", "%s.2" % self.netblock)
+        ec.set(tun2, "prefix", "24")
         ec.register_connection(tun2, node2)
 
         udptun = ec.register_resource("linux::GRETunnel")
@@ -141,7 +137,7 @@ class PlanetLabGRETunnelTestCase(unittest.TestCase):
 
         ec.wait_finished(app)
 
-        ping = ec.trace(app, 'stdout')
+        ping = ec.trace(app, "stdout")
         expected = """3 packets transmitted, 3 received, 0% packet loss"""
         self.assertTrue(ping.find(expected) > -1)
         
@@ -157,32 +153,30 @@ class PlanetLabGRETunnelTestCase(unittest.TestCase):
     def t_tun_hybrid_gre_tunnel(self, user1, host1, identity1, 
             user2, host2, identity2):
 
-        ec = ExperimentController(exp_id = "test-tap-hybrid-gre-tunnel")
+        ec = ExperimentController(exp_id="test-tap-hybrid-gre-tunnel")
         
         node1 = ec.register_resource("planetlab::Node")
         ec.set(node1, "hostname", host1)
         ec.set(node1, "username", user1)
         ec.set(node1, "identity", identity1)
-        #ec.set(node1, "cleanHome", True)
         ec.set(node1, "cleanExperiment", True)
         ec.set(node1, "cleanProcesses", True)
 
         tun1 = ec.register_resource("planetlab::Tun")
-        ec.set(tun1, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tun1, "endpoint_prefix", 24)
+        ec.set(tun1, "ip", "%s.1" % self.netblock)
+        ec.set(tun1, "prefix", "24")
         ec.register_connection(tun1, node1)
 
         node2 = ec.register_resource("linux::Node")
         ec.set(node2, "hostname", host2)
         ec.set(node2, "username", user2)
         ec.set(node2, "identity", identity2)
-        #ec.set(node2, "cleanHome", True)
         ec.set(node2, "cleanExperiment", True)
         ec.set(node2, "cleanProcesses", True)
 
         tun2 = ec.register_resource("linux::Tun")
-        ec.set(tun2, "endpoint_ip", "%s.2" % self.netblock)
-        ec.set(tun2, "endpoint_prefix", 24)
+        ec.set(tun2, "ip", "%s.2" % self.netblock)
+        ec.set(tun2, "prefix", "24")
         ec.register_connection(tun2, node2)
 
         gretun = ec.register_resource("linux::GRETunnel")
@@ -200,7 +194,7 @@ class PlanetLabGRETunnelTestCase(unittest.TestCase):
 
         ec.wait_finished(app)
 
-        ping = ec.trace(app, 'stdout')
+        ping = ec.trace(app, "stdout")
         expected = """3 packets transmitted, 3 received, 0% packet loss"""
         self.assertTrue(ping.find(expected) > -1)
         
index 5b63fab..d52de03 100755 (executable)
@@ -40,7 +40,7 @@ class PlanetlabTapTestCase(unittest.TestCase):
     @skipIfNotAlive
     def t_tap_create(self, host, user, identity):
 
-        ec = ExperimentController(exp_id = "test-tap-create")
+        ec = ExperimentController(exp_id="test-tap-create")
         
         node = ec.register_resource("planetlab::Node")
         ec.set(node, "hostname", host)
@@ -50,8 +50,8 @@ class PlanetlabTapTestCase(unittest.TestCase):
         ec.set(node, "cleanProcesses", True)
 
         tap = ec.register_resource("planetlab::Tap")
-        ec.set(tap, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tap, "endpoint_prefix", 24)
+        ec.set(tap, "ip", "%s.1" % self.netblock)
+        ec.set(tap, "prefix", "24")
         ec.register_connection(tap, node)
 
         app = ec.register_resource("linux::Application")
@@ -63,7 +63,7 @@ class PlanetlabTapTestCase(unittest.TestCase):
 
         ec.wait_finished(app)
 
-        ping = ec.trace(app, 'stdout')
+        ping = ec.trace(app, "stdout")
         expected = """3 packets transmitted, 3 received, 0% packet loss"""
         self.assertTrue(ping.find(expected) > -1)
         
index 6c727f1..0125971 100755 (executable)
@@ -40,7 +40,7 @@ class PlanetlabTunTestCase(unittest.TestCase):
     @skipIfNotAlive
     def t_tun_create(self, host, user, identity):
 
-        ec = ExperimentController(exp_id = "test-un-create")
+        ec = ExperimentController(exp_id="test-un-create")
         
         node = ec.register_resource("planetlab::Node")
         ec.set(node, "hostname", host)
@@ -50,8 +50,8 @@ class PlanetlabTunTestCase(unittest.TestCase):
         ec.set(node, "cleanProcesses", True)
 
         tun = ec.register_resource("planetlab::Tun")
-        ec.set(tun, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tun, "endpoint_prefix", 24)
+        ec.set(tun, "ip", "%s.1" % self.netblock)
+        ec.set(tun, "prefix", "24")
         ec.register_connection(tun, node)
 
         app = ec.register_resource("linux::Application")
@@ -63,7 +63,7 @@ class PlanetlabTunTestCase(unittest.TestCase):
 
         ec.wait_finished(app)
 
-        ping = ec.trace(app, 'stdout')
+        ping = ec.trace(app, "stdout")
         expected = """3 packets transmitted, 3 received, 0% packet loss"""
         self.assertTrue(ping.find(expected) > -1)
         
index bd87a75..167052b 100755 (executable)
@@ -43,7 +43,7 @@ class PlanetlabUdpTunnelTestCase(unittest.TestCase):
     def t_tap_udp_tunnel(self, user1, host1, identity1, user2, host2, 
             identity2):
 
-        ec = ExperimentController(exp_id = "test-tap-udp-tunnel")
+        ec = ExperimentController(exp_id="test-tap-udp-tunnel")
         
         node1 = ec.register_resource("planetlab::Node")
         ec.set(node1, "hostname", host1)
@@ -53,8 +53,8 @@ class PlanetlabUdpTunnelTestCase(unittest.TestCase):
         ec.set(node1, "cleanProcesses", True)
 
         tap1 = ec.register_resource("planetlab::Tap")
-        ec.set(tap1, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tap1, "endpoint_prefix", 24)
+        ec.set(tap1, "ip", "%s.1" % self.netblock)
+        ec.set(tap1, "prefix", "24")
         ec.register_connection(tap1, node1)
 
         node2 = ec.register_resource("planetlab::Node")
@@ -65,8 +65,8 @@ class PlanetlabUdpTunnelTestCase(unittest.TestCase):
         ec.set(node2, "cleanProcesses", True)
 
         tap2 = ec.register_resource("planetlab::Tap")
-        ec.set(tap2, "endpoint_ip", "%s.2" % self.netblock)
-        ec.set(tap2, "endpoint_prefix", 24)
+        ec.set(tap2, "ip", "%s.2" % self.netblock)
+        ec.set(tap2, "prefix", "24")
         ec.register_connection(tap2, node2)
 
         udptun = ec.register_resource("linux::UdpTunnel")
@@ -97,7 +97,7 @@ class PlanetlabUdpTunnelTestCase(unittest.TestCase):
     @skipIfAnyNotAliveWithIdentity
     def t_tun_udp_tunnel(self, user1, host1, identity1, user2, host2, identity2):
 
-        ec = ExperimentController(exp_id = "test-tun-udp-tunnel")
+        ec = ExperimentController(exp_id="test-tun-udp-tunnel")
         
         node1 = ec.register_resource("planetlab::Node")
         ec.set(node1, "hostname", host1)
@@ -107,8 +107,8 @@ class PlanetlabUdpTunnelTestCase(unittest.TestCase):
         ec.set(node1, "cleanProcesses", True)
 
         tun1 = ec.register_resource("planetlab::Tun")
-        ec.set(tun1, "endpoint_ip", "%s.1" % self.netblock)
-        ec.set(tun1, "endpoint_prefix", 24)
+        ec.set(tun1, "ip", "%s.1" % self.netblock)
+        ec.set(tun1, "prefix", "24")
         ec.register_connection(tun1, node1)
 
         node2 = ec.register_resource("planetlab::Node")
@@ -119,8 +119,8 @@ class PlanetlabUdpTunnelTestCase(unittest.TestCase):
         ec.set(node2, "cleanProcesses", True)
 
         tun2 = ec.register_resource("planetlab::Tun")
-        ec.set(tun2, "endpoint_ip", "%s.2" % self.netblock)
-        ec.set(tun2, "endpoint_prefix", 24)
+        ec.set(tun2, "ip", "%s.2" % self.netblock)
+        ec.set(tun2, "prefix", "24")
         ec.register_connection(tun2, node2)
 
         udptun = ec.register_resource("linux::UdpTunnel")