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
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
@skipIfNotAlive
def t_cross_ping(self, host, user, identity):
+
ec = ExperimentController(exp_id = "test-pl-ns3-tap-fd")
node = ec.register_resource("planetlab::Node")
#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
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,
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):