FdNetDevice working with PlanetLab TAPs
[nepi.git] / test / resources / planetlab / ns3 / cross_ns3_linux_ping.py
index 4b44e5d..c73d08a 100755 (executable)
@@ -43,10 +43,11 @@ def add_fd_device(ec, node, ip, prefix):
 
     return dev
 
-def add_tap_device(ec, node, ip, prefix):
+def add_tap_device(ec, node, ip, prefix, pointopoint):
     dev = ec.register_resource("planetlab::Tap")
     ec.set(dev, "ip", ip)
     ec.set(dev, "prefix", prefix)
+    ec.set(dev, "pointopoint", pointopoint)
     ec.register_connection(node, dev)
     
     return dev
@@ -65,7 +66,8 @@ def add_point2point_device(ec, node, ip, prefix):
 class LinuxNS3FdNetDeviceTest(unittest.TestCase):
     def setUp(self):
         #self.fedora_host = "nepi2.pl.sophia.inria.fr"
-        self.fedora_host = "planetlab2.sics.se"
+        #self.fedora_host = "planetlab2.s3.kth.se"
+        self.fedora_host = "planet2.servers.ua.pt"
         # ple2.ipv6.lip6.fr
         # inriarennes2.irisa.fr
         # planetlab1.upc.es
@@ -76,6 +78,7 @@ class LinuxNS3FdNetDeviceTest(unittest.TestCase):
 
     @skipIfNotAlive
     def t_cross_ping(self, host, user, identity):
+
         ec = ExperimentController(exp_id = "test-pl-ns3-tap-fd")
         
         node = ec.register_resource("planetlab::Node")
@@ -93,17 +96,24 @@ class LinuxNS3FdNetDeviceTest(unittest.TestCase):
         #ec.set(simu, "nsLog", "FdNetDevice")
         ec.register_connection(simu, node)
 
+        net1 = "%s.0" % self.netblock
+        net2 = "%s.4" % self.netblock
+        ip1 = "%s.1" % self.netblock
+        ip2 = "%s.2" % self.netblock
+        ip3 = "%s.5" % self.netblock
+        ip4 = "%s.6" % self.netblock
+
         nsnode1 = add_ns3_node(ec, simu)
-        dev1 = add_point2point_device(ec, nsnode1, "%s.1" % self.netblock, "30")
+        dev1 = add_point2point_device(ec, nsnode1, ip1, "30")
 
         nsnode2 = add_ns3_node(ec, simu)
-        dev2 = add_point2point_device(ec, nsnode2, "%s.2" % self.netblock, "30")
+        dev2 = add_point2point_device(ec, nsnode2, ip2, "30")
         
         # Add routes on the NS3 side
         r1 = ec.register_resource("ns3::Route")
-        ec.set(r1, "network", "%s.4" % self.netblock)
+        ec.set(r1, "network", net2)
         ec.set(r1, "prefix", "30")
-        ec.set(r1, "nexthop", "%s.1" % self.netblock)
+        ec.set(r1, "nexthop", ip1)
         ec.register_connection(r1, nsnode2)
 
         # Create channel
@@ -112,24 +122,25 @@ class LinuxNS3FdNetDeviceTest(unittest.TestCase):
         ec.register_connection(chan, dev1)
         ec.register_connection(chan, dev2)
 
-        fddev = add_fd_device(ec, nsnode1, "%s.5" % self.netblock, "30")
+        fddev = add_fd_device(ec, nsnode1, ip3, "30")
         ec.enable_trace(fddev, "pcap")
         ec.enable_trace(fddev, "promiscPcap")
         ec.enable_trace(fddev, "ascii")
 
-        tap = add_tap_device(ec, node, "%s.6" % self.netblock, "30")
+        tap = add_tap_device(ec, node, ip4, "30", ip3)
 
         crosslink = ec.register_resource("planetlab::ns3::TunTapFdLink")
         ec.register_connection(crosslink, tap)
         ec.register_connection(crosslink, fddev)
 
         r2 = ec.register_resource("planetlab::Vroute")
-        ec.set(r2, "action", "add")
-        ec.set(r2, "network", "%s.0/30" % self.netblock)
+        ec.set(r2, "network", net1)
+        ec.set(r2, "prefix", "30")
+        ec.set(r2, "nexthop", ip3)
         ec.register_connection(r2, tap)
 
         app = ec.register_resource("linux::Application")
-        ec.set(app, "command", "ping -c3 %s.1" % self.netblock)
+        ec.set(app, "command", "ping -c3 %s" % ip1)
         ec.register_connection(app, node)
 
         ec.register_condition(app, ResourceAction.START, simu, 
@@ -147,7 +158,7 @@ class LinuxNS3FdNetDeviceTest(unittest.TestCase):
         ec.release()
         pcap = ec.trace(fddev, "pcap")
 
-        self.assertTrue(len(pcap) > 4000)
+        self.assertTrue(len(pcap) > 1500)
         ec.shutdown()
 
     def test_cross_ping_fedora(self):