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()
14 testbed_version = "3_9"
16 provider = FactoriesProvider(testbed_id, testbed_version)
17 tstbd_desc = exp_desc.add_testbed_description(provider)
19 node1 = tstbd_desc.create("ns3::Node")
20 ipv41 = tstbd_desc.create("ns3::Ipv4L3Protocol")
21 arp1 = tstbd_desc.create("ns3::ArpL3Protocol")
22 icmp1 = tstbd_desc.create("ns3::Icmpv4L4Protocol")
23 udp1 = tstbd_desc.create("ns3::UdpL4Protocol")
24 node1.connector("protos").connect(ipv41.connector("node"))
25 node1.connector("protos").connect(arp1.connector("node"))
26 node1.connector("protos").connect(icmp1.connector("node"))
27 node1.connector("protos").connect(udp1.connector("node"))
28 iface1 = tstbd_desc.create("ns3::PointToPointNetDevice")
29 queue1 = tstbd_desc.create("ns3::DropTailQueue")
30 node1.connector("devs").connect(iface1.connector("node"))
31 iface1.connector("queue").connect(queue1.connector("dev"))
32 trace1 = iface1.enable_trace("P2PPcapTrace")
33 ip1 = iface1.add_address()
34 ip1.set_attribute_value("Address", "10.0.0.1")
36 node2 = tstbd_desc.create("ns3::Node")
37 ipv42 = tstbd_desc.create("ns3::Ipv4L3Protocol")
38 arp2 = tstbd_desc.create("ns3::ArpL3Protocol")
39 icmp2 = tstbd_desc.create("ns3::Icmpv4L4Protocol")
40 udp2 = tstbd_desc.create("ns3::UdpL4Protocol")
41 node2.connector("protos").connect(ipv42.connector("node"))
42 node2.connector("protos").connect(arp2.connector("node"))
43 node2.connector("protos").connect(icmp2.connector("node"))
44 node2.connector("protos").connect(udp2.connector("node"))
45 iface2 = tstbd_desc.create("ns3::PointToPointNetDevice")
46 queue2 = tstbd_desc.create("ns3::DropTailQueue")
47 node2.connector("devs").connect(iface2.connector("node"))
48 iface2.connector("queue").connect(queue2.connector("dev"))
49 trace2 = iface2.enable_trace("P2PPcapTrace")
50 ip2 = iface2.add_address()
51 ip2.set_attribute_value("Address", "10.0.0.2")
53 chan = tstbd_desc.create("ns3::PointToPointChannel")
54 iface1.connector("chan").connect(chan.connector("dev2"))
55 iface2.connector("chan").connect(chan.connector("dev2"))
57 app = tstbd_desc.create("ns3::V4Ping")
58 app.set_attribute_value("Remote", "10.0.0.2")
59 app.set_attribute_value("StartTime", "0s")
60 app.set_attribute_value("StopTime", "20s")
61 app.set_attribute_value("Verbose", False)
62 app.connector("node").connect(node1.connector("apps"))
64 xml = exp_desc.to_xml()
65 exp_desc2 = ExperimentDescription()
66 exp_desc2.from_xml(xml)
67 xml2 = exp_desc2.to_xml()
68 self.assertTrue(xml == xml2)
70 if __name__ == '__main__':