2 # -*- coding: utf-8 -*-
4 from nepi.core.design import ExperimentDescription, FactoriesProvider
11 class Ns3DesignTestCase(unittest.TestCase):
12 def test_design_if(self):
13 exp_desc = ExperimentDescription()
15 provider = FactoriesProvider(testbed_id)
16 tstbd_desc = exp_desc.add_testbed_description(provider)
18 node1 = tstbd_desc.create("ns3::Node")
19 ipv41 = tstbd_desc.create("ns3::Ipv4L3Protocol")
20 arp1 = tstbd_desc.create("ns3::ArpL3Protocol")
21 icmp1 = tstbd_desc.create("ns3::Icmpv4L4Protocol")
22 udp1 = tstbd_desc.create("ns3::UdpL4Protocol")
23 node1.connector("protos").connect(ipv41.connector("node"))
24 node1.connector("protos").connect(arp1.connector("node"))
25 node1.connector("protos").connect(icmp1.connector("node"))
26 node1.connector("protos").connect(udp1.connector("node"))
27 iface1 = tstbd_desc.create("ns3::PointToPointNetDevice")
28 queue1 = tstbd_desc.create("ns3::DropTailQueue")
29 node1.connector("devs").connect(iface1.connector("node"))
30 iface1.connector("queue").connect(queue1.connector("dev"))
31 trace1 = iface1.enable_trace("P2PPcapTrace")
32 ip1 = iface1.add_address()
33 ip1.set_attribute_value("Address", "10.0.0.1")
35 node2 = tstbd_desc.create("ns3::Node")
36 ipv42 = tstbd_desc.create("ns3::Ipv4L3Protocol")
37 arp2 = tstbd_desc.create("ns3::ArpL3Protocol")
38 icmp2 = tstbd_desc.create("ns3::Icmpv4L4Protocol")
39 udp2 = tstbd_desc.create("ns3::UdpL4Protocol")
40 node2.connector("protos").connect(ipv42.connector("node"))
41 node2.connector("protos").connect(arp2.connector("node"))
42 node2.connector("protos").connect(icmp2.connector("node"))
43 node2.connector("protos").connect(udp2.connector("node"))
44 iface2 = tstbd_desc.create("ns3::PointToPointNetDevice")
45 queue2 = tstbd_desc.create("ns3::DropTailQueue")
46 node2.connector("devs").connect(iface2.connector("node"))
47 iface2.connector("queue").connect(queue2.connector("dev"))
48 trace2 = iface2.enable_trace("P2PPcapTrace")
49 ip2 = iface2.add_address()
50 ip2.set_attribute_value("Address", "10.0.0.2")
52 chan = tstbd_desc.create("ns3::PointToPointChannel")
53 iface1.connector("chan").connect(chan.connector("dev2"))
54 iface2.connector("chan").connect(chan.connector("dev2"))
56 app = tstbd_desc.create("ns3::V4Ping")
57 app.set_attribute_value("Remote", "10.0.0.2")
58 app.set_attribute_value("StartTime", "0s")
59 app.set_attribute_value("StopTime", "20s")
60 app.set_attribute_value("Verbose", False)
61 app.connector("node").connect(node1.connector("apps"))
63 xml = exp_desc.to_xml()
64 exp_desc2 = ExperimentDescription()
65 exp_desc2.from_xml(xml)
66 xml2 = exp_desc2.to_xml()
67 self.assertTrue(xml == xml2)
69 if __name__ == '__main__':