def test_design_if(self): testbed_id = "netns" exp_desc = ExperimentDescription() provider = FactoriesProvider(testbed_id) tstbd_desc = exp_desc.add_testbed_description(provider) tstbd_desc.set_attribute_value("enableDebug", True) node1 = tstbd_desc.create("Node") node2 = tstbd_desc.create("Node") iface1 = tstbd_desc.create("NodeInterface") iface1.set_attribute_value("up", True) node1.connector("devs").connect(iface1.connector("node")) ip1 = iface1.add_address() ip1.set_attribute_value("Address", "10.0.0.1") iface2 = tstbd_desc.create("NodeInterface") iface2.set_attribute_value("up", True) node2.connector("devs").connect(iface2.connector("node")) ip2 = iface2.add_address() ip2.set_attribute_value("Address", "10.0.0.2") switch = tstbd_desc.create("Switch") switch.set_attribute_value("up", True) iface1.connector("switch").connect(switch.connector("devs")) iface2.connector("switch").connect(switch.connector("devs")) app = tstbd_desc.create("Application") app.set_attribute_value("command", "ping -qc10 10.0.0.2") app.connector("node").connect(node1.connector("apps")) xml = exp_desc.to_xml() exp_desc2 = ExperimentDescription() exp_desc2.from_xml(xml) xml2 = exp_desc2.to_xml() self.assertTrue(xml == xml2)
def test_design(self): exp_desc = ExperimentDescription() testbed_id = "mock" provider = FactoriesProvider(testbed_id) desc = exp_desc.add_testbed_description(provider) desc.set_attribute_value("fake", True) node1 = desc.create("Node") node2 = desc.create("Node") iface1 = desc.create("Interface") iface1.set_attribute_value("fake", True) addr1 = iface1.add_address() addr2 = iface1.add_address() addr3 = iface1.add_address() self.assertRaises(RuntimeError, iface1.add_address) node1.connector("devs").connect(iface1.connector("node")) iface2 = desc.create("Interface") iface2.set_attribute_value("fake", True) node2.connector("devs").connect(iface2.connector("node")) iface1.connector("iface").connect(iface2.connector("iface")) app = desc.create("Application") app.connector("node").connect(node1.connector("apps")) app.enable_trace("fake") self.assertEquals(node1.tags, [tags.MOBILE, tags.NODE, tags.ALLOW_ROUTES]) xml = exp_desc.to_xml() exp_desc2 = ExperimentDescription() exp_desc2.from_xml(xml) xml2 = exp_desc2.to_xml() self.assertTrue(xml == xml2)
def test_design_simple(self): exp_desc, tstbd_desc, node1, node2, iface1, iface2, app = self.make_test_design() xml = exp_desc.to_xml() exp_desc2 = ExperimentDescription() exp_desc2.from_xml(xml) xml2 = exp_desc2.to_xml() self.assertTrue(xml == xml2)
def test_design_if(self): testbed_id = "ns3" exp_desc = ExperimentDescription() provider = FactoriesProvider(testbed_id) tstbd_desc = exp_desc.add_testbed_description(provider) node1 = tstbd_desc.create("ns3::Node") ipv41 = tstbd_desc.create("ns3::Ipv4L3Protocol") arp1 = tstbd_desc.create("ns3::ArpL3Protocol") icmp1 = tstbd_desc.create("ns3::Icmpv4L4Protocol") udp1 = tstbd_desc.create("ns3::UdpL4Protocol") node1.connector("protos").connect(ipv41.connector("node")) node1.connector("protos").connect(arp1.connector("node")) node1.connector("protos").connect(icmp1.connector("node")) node1.connector("protos").connect(udp1.connector("node")) iface1 = tstbd_desc.create("ns3::PointToPointNetDevice") queue1 = tstbd_desc.create("ns3::DropTailQueue") node1.connector("devs").connect(iface1.connector("node")) iface1.connector("queue").connect(queue1.connector("dev")) trace1 = iface1.enable_trace("P2PPcapTrace") ip1 = iface1.add_address() ip1.set_attribute_value("Address", "10.0.0.1") node2 = tstbd_desc.create("ns3::Node") ipv42 = tstbd_desc.create("ns3::Ipv4L3Protocol") arp2 = tstbd_desc.create("ns3::ArpL3Protocol") icmp2 = tstbd_desc.create("ns3::Icmpv4L4Protocol") udp2 = tstbd_desc.create("ns3::UdpL4Protocol") node2.connector("protos").connect(ipv42.connector("node")) node2.connector("protos").connect(arp2.connector("node")) node2.connector("protos").connect(icmp2.connector("node")) node2.connector("protos").connect(udp2.connector("node")) iface2 = tstbd_desc.create("ns3::PointToPointNetDevice") queue2 = tstbd_desc.create("ns3::DropTailQueue") node2.connector("devs").connect(iface2.connector("node")) iface2.connector("queue").connect(queue2.connector("dev")) trace2 = iface2.enable_trace("P2PPcapTrace") ip2 = iface2.add_address() ip2.set_attribute_value("Address", "10.0.0.2") chan = tstbd_desc.create("ns3::PointToPointChannel") iface1.connector("chan").connect(chan.connector("dev2")) iface2.connector("chan").connect(chan.connector("dev2")) app = tstbd_desc.create("ns3::V4Ping") app.set_attribute_value("Remote", "10.0.0.2") app.set_attribute_value("StartTime", "0s") app.set_attribute_value("StopTime", "20s") app.set_attribute_value("Verbose", False) app.connector("node").connect(node1.connector("apps")) xml = exp_desc.to_xml() exp_desc2 = ExperimentDescription() exp_desc2.from_xml(xml) xml2 = exp_desc2.to_xml() self.assertTrue(xml == xml2)
def test_design_constrained(self): exp_desc, tstbd_desc, node1, node2, iface1, iface2, app = self.make_test_design() node1.set_attribute_value("hostname", "onelab*.inria.fr") node2.set_attribute_value("hostname", "onelab*.inria.fr") xml = exp_desc.to_xml() exp_desc2 = ExperimentDescription() exp_desc2.from_xml(xml) xml2 = exp_desc2.to_xml() self.assertTrue(xml == xml2)
def test_design_constrained2(self): exp_desc, tstbd_desc, node1, node2, iface1, iface2, app = self.make_test_design() node1.set_attribute_value("minReliability", 90.0) node1.set_attribute_value("operatingSystem", "f12") node2.set_attribute_value("minReliability", 50.0) node2.set_attribute_value("architecture", "x86_64") xml = exp_desc.to_xml() exp_desc2 = ExperimentDescription() exp_desc2.from_xml(xml) xml2 = exp_desc2.to_xml() self.assertTrue(xml == xml2)
def test_design_emulation(self): exp_desc, tstbd_desc, node1, node2, iface1, iface2, app = self.make_test_design() netpipe1 = tstbd_desc.create("NetPipe") netpipe1.set_attribute_value("mode","CLIENT") netpipe1.set_attribute_value("portList","80,443") netpipe1.set_attribute_value("bwIn",1.0) netpipe1.set_attribute_value("bwOut",128.0/1024.0) netpipe1.set_attribute_value("delayIn",12) netpipe1.set_attribute_value("delayOut",92) netpipe1.set_attribute_value("plrIn",0.05) netpipe1.set_attribute_value("plrOut",0.15) node1.connector("pipes").connect(netpipe1.connector("node")) xml = exp_desc.to_xml() exp_desc2 = ExperimentDescription() exp_desc2.from_xml(xml) xml2 = exp_desc2.to_xml() self.assertTrue(xml == xml2)