def startTerms(self): # pragma: no cover "Start a terminal for each node." if "DISPLAY" not in os.environ: error("Error starting terms: Cannot connect to display\n") return info("*** Running terms on %s\n" % os.environ["DISPLAY"]) cleanUpScreens() self.terms += makeTerms(self.controllers, "controller") self.terms += makeTerms(self.switches, "switch") dhosts = [h for h in self.hosts if isinstance(h, DockerHost)] for d in dhosts: self.terms.append(spawnXtermDocker(d.name)) rest = [h for h in self.hosts if h not in dhosts] self.terms += makeTerms(rest, "host")
"D6", "drone_mqtt_client", "python3 /home/drone_client_mqtt.py", docker_args={}) print("*** Adding the MQTT client") srv8 = mgr.addContainer("WebServer", "WS", "server", "", docker_args={}) print("*** Adding the web server") srv9 = mgr.addContainer("WebClient", "WC", "client", "bash", docker_args={}) spawnXtermDocker("WebClient") CLI(net) mgr.removeContainer("dr1") mgr.removeContainer("dr2") mgr.removeContainer("dr3") mgr.removeContainer("dr4") mgr.removeContainer("dr5") mgr.removeContainer("dr6") mgr.removeContainer("MQTTBroker") mgr.removeContainer("WebClient") mgr.removeContainer("WebServer") net.stop() mgr.stop()
info("*** Adding switch and links\n") switch1 = net.addSwitch("s1") switch2 = net.addSwitch("s2") net.addLink(switch1, h1, bw=10, delay="10ms") net.addLink(switch1, switch2, bw=10, delay="10ms") net.addLink(switch2, h2, bw=10, delay="10ms") info("\n*** Starting network\n") net.start() srv1 = mgr.addContainer( "srv1", "h1", "echo_server", "python /home/server.py", docker_args={}, ) srv2 = mgr.addContainer("srv2", "h2", "dev_test", "bash", docker_args={}) if not AUTOTEST_MODE: # Cannot spawn xterm for srv1 since BASH is not installed in the image: # echo_server. spawnXtermDocker("srv2") CLI(net) mgr.removeContainer("srv1") mgr.removeContainer("srv2") net.stop() mgr.stop()
def myTopology(): net = Containernet( switch=OVSKernelSwitch, build=False, autoSetMacs=True, autoStaticArp=True, link=TCLink, ) mgr = VNFManager(net) setLogLevel("info") info("*** Add Switches\n") sconfig1 = {"dpid": "%016x" % 1} sconfig2 = {"dpid": "%016x" % 2} sconfig3 = {"dpid": "%016x" % 3} sconfig4 = {"dpid": "%016x" % 4} sconfig5 = {"dpid": "%016x" % 5} net.addSwitch("s1", **sconfig1) net.addSwitch("s2", **sconfig2) net.addSwitch("s3", **sconfig3) net.addSwitch("s4", **sconfig4) net.addSwitch("s5", **sconfig5) info("*** Add Hosts\n") host_config = dict(inNamespace=True) #net.addHost("h1", **host_config, ip="192.0.0.1") h1 = net.addDockerHost( "h1", dimage="dev_test", ip="192.0.0.1", docker_args={"hostname": "h1"}, ) h2 = net.addDockerHost( "h2", dimage="dev_test", ip="192.0.0.2", docker_args={"hostname": "h2"}, ) h3 = net.addDockerHost( "h3", dimage="dev_test", ip="192.0.0.3", docker_args={"hostname": "h3"}, ) h4 = net.addDockerHost( "h4", dimage="dev_test", ip="192.0.0.4", docker_args={"hostname": "h4"}, ) h5 = net.addDockerHost( "h5", dimage="dev_test", ip="192.0.0.5", docker_args={"hostname": "h5"}, ) h6 = net.addDockerHost( "h6", dimage="dev_test", ip="192.0.0.6", docker_args={"hostname": "h6"}, ) h7 = net.addDockerHost( "h7", dimage="dev_test", ip="192.0.0.7", docker_args={"hostname": "h7"}, ) h8 = net.addDockerHost( "h8", dimage="dev_test", ip="192.0.0.8", docker_args={"hostname": "h8"}, ) info("*** Add Links\n") net.addLink("h1", "s1", bw=B1) net.addLink("h2", "s1", bw=B1) net.addLink("h3", "s1", bw=B1) net.addLink("h4", "s5", bw=B2) net.addLink("h5", "s5", bw=B2) net.addLink("s1", "s2", bw=B1) net.addLink("s2", "s3", bw=B1, delay=DELAY) net.addLink("s3", "s4", bw=B1, delay=DELAY) net.addLink("s2", "s4", bw=B2) net.addLink("s1", "s4", bw=B1) net.addLink("s1", "s5", bw=B1) net.addLink("s4", "h6", bw=B1) net.addLink("s4", "h7", bw=B1) net.addLink("s4", "h8", bw=B1) info("*** Add controller\n") controller = RemoteController("c0", ip="127.0.0.1", port=6633) net.addController(controller) net.build() #controller.start() #s1.start( [controller] ) #s2.start( [controller] ) #s1.cmd("ovs-vsctl set port s1-eth4 qos=@newqos -- --id=@newqos create QoS type=linux-htb other-config:max-rate=1000000 queues:123=@1q queues:234=@2q -- --id=@1q create queue other-config:min-rate=100000 other-config:max-rate=700000 -- --id=@2q create queue other-config:min-rate=100000 other-config:max-rate=700000") #s1.cmd("ovs-ofctl add-flow s1 nw_src=192.0.0.2,nw_dst=192.0.0.7,actions=enqueue:4:123") net.start() srv1 = mgr.addContainer( "srv1", "h1", "servernew", "python /home/servernew.py", docker_args={}, ) #autonomus srv2 = mgr.addContainer( "srv2", "h2", "dev_test", "bash", docker_args={}, ) #udp srv3 = mgr.addContainer( "srv3", "h3", "eclipse-mosquitto", "bash", docker_args={}, ) #brocker srv4 = mgr.addContainer( "srv4", "h4", "aksakalli/mqtt-client", "bash /home/clientnew.sh", docker_args={}, ) srv5 = mgr.addContainer( "srv5", "h5", "aksakalli/mqtt-client", "bash", docker_args={}, ) srv6 = mgr.addContainer( "srv6", "h6", "dev_test", "bash", docker_args={}, ) srv7 = mgr.addContainer( "srv7", "h7", "dev_test", "bash", docker_args={}, ) srv8 = mgr.addContainer( "srv8", "h8", "dev_test", "bash", docker_args={}, ) spawnXtermDocker("srv2") spawnXtermDocker("srv7") CLI(net) mgr.removeContainer("srv1") mgr.removeContainer("srv2") mgr.removeContainer("srv3") mgr.removeContainer("srv4") mgr.removeContainer("srv5") mgr.removeContainer("srv6") mgr.removeContainer("srv7") mgr.removeContainer("srv8") net.stop() mgr.stop()
info("\n*** Starting network\n") net.start() srv1 = mgr.addContainer("srv1", "mqttServer", "eclipse-mosquitto", "", docker_args={}) srv2 = mgr.addContainer("srv2", "webServer", "webserver", "", docker_args={}) srv3 = mgr.addContainer( "srv3", "drone", "drone", "python /drone/drone.py --ip 10.0.0.1 --port 1883 --debug", docker_args={}) srv4 = mgr.addContainer("srv4", "client", "client", "bash", docker_args={}) spawnXtermDocker("srv4") CLI(net) mgr.removeContainer("srv1") mgr.removeContainer("srv2") mgr.removeContainer("srv3") mgr.removeContainer("srv4") net.stop() mgr.stop()
) srv8 = mgr.addContainer( "srv8", "h8", "echo_server", "python /home/server.py", docker_args={}, ) srv1 = mgr.addContainer("srv1", "h1", "dev_test", "bash", docker_args={}) srv2 = mgr.addContainer("srv2", "h2", "dev_test", "bash", docker_args={}) srv3 = mgr.addContainer("srv3", "h3", "dev_test", "bash", docker_args={}) srv5 = mgr.addContainer("srv5", "h5", "dev_test", "bash", docker_args={}) srv6 = mgr.addContainer("srv6", "h6", "dev_test", "bash", docker_args={}) if not AUTOTEST_MODE: # Cannot spawn xterm for srv1 since BASH is not installed in the image: # echo_server. spawnXtermDocker("srv3") CLI(net) mgr.removeContainer("srv1") mgr.removeContainer("srv2") mgr.removeContainer("srv3") mgr.removeContainer("srv4") mgr.removeContainer("srv5") mgr.removeContainer("srv6") mgr.removeContainer("srv7") mgr.removeContainer("srv8") net.stop() mgr.stop()
info("\n*** Starting network\n") net.start() print("- Run builder to build FFPP programs.") builder = mgr.addContainer( "builder", "h2", "ffpp", "bash", docker_args={ "volumes": FFPP_VOLS, "working_dir": "/ffpp_app", }, ) time.sleep(1) spawnXtermDocker("builder") CLI(net) print("- Add the distributor VNF on host h2.") distributor = mgr.addContainer( "distributor", "h2", "ffpp", "bash", docker_args={ "volumes": FFPP_VOLS, "working_dir": "/ffpp_app", "nano_cpus": int(3e8), }, ) time.sleep(1)
def myTopology(): net = Containernet( switch=OVSKernelSwitch, build=False, autoSetMacs=True, autoStaticArp=True, link=TCLink, ) mgr = VNFManager(net) setLogLevel("info") info("*** Add Switches\n") sconfig1 = {"dpid": "%016x" % 1} sconfig2 = {"dpid": "%016x" % 2} sconfig3 = {"dpid": "%016x" % 3} sconfig4 = {"dpid": "%016x" % 4} net.addSwitch("s1", **sconfig1) net.addSwitch("s2", **sconfig2) net.addSwitch("s3", **sconfig3) net.addSwitch("s4", **sconfig4) info("*** Add Hosts\n") host_config = dict(inNamespace=True) #net.addHost("h1", **host_config, ip="192.0.0.1") h1 = net.addDockerHost( "h1", dimage="dev_test", ip="192.0.0.1", docker_args={"hostname": "h1"}, ) h2 = net.addDockerHost( "h2", dimage="dev_test", ip="192.0.0.2", docker_args={"hostname": "h2"}, ) h3 = net.addDockerHost( "h3", dimage="dev_test", ip="192.0.0.3", docker_args={"hostname": "h3"}, ) h4 = net.addDockerHost( "h4", dimage="dev_test", ip="192.0.0.4", docker_args={"hostname": "h4"}, ) h5 = net.addDockerHost( "h5", dimage="dev_test", ip="192.0.0.5", docker_args={"hostname": "h5"}, ) h6 = net.addDockerHost( "h6", dimage="dev_test", ip="192.0.0.6", docker_args={"hostname": "h6"}, ) h7 = net.addDockerHost( "h7", dimage="dev_test", ip="192.0.0.7", docker_args={"hostname": "h7"}, ) info("*** Add Links\n") net.addLink("h1", "s1", bw=B1) net.addLink("h2", "s1", bw=B1) net.addLink("h3", "s1", bw=B1) net.addLink("h4", "s1", bw=B1) net.addLink("s1", "s2", bw=B1) net.addLink("s2", "s3", bw=B1, delay=DELAY) net.addLink("s3", "s4", bw=B1, delay=DELAY) net.addLink("s2", "s4", bw=B2) net.addLink("s1", "s4", bw=B1) net.addLink("s4", "h5", bw=B1) net.addLink("s4", "h6", bw=B1) net.addLink("s4", "h7", bw=B1) info("*** Add controller\n") controller = RemoteController("c1", ip="127.0.0.1", port=6633) net.addController(controller) net.build() net.start() srv1 = mgr.addContainer( "srv1", "h1", "echo_server", "python /home/server_ad.py", docker_args={}, ) srv2 = mgr.addContainer( "srv2", "h2", "echo_server", "python /home/server.py", docker_args={}, ) srv3 = mgr.addContainer( "srv3", "h3", "echo_server", "python /home/server.py", docker_args={}, ) srv4 = mgr.addContainer( "srv4", "h4", "dev_test", "bash", docker_args={}, ) srv5 = mgr.addContainer( "srv5", "h5", "dev_test", "bash", docker_args={}, ) srv6 = mgr.addContainer( "srv6", "h6", "dev_test", "bash", docker_args={}, ) srv7 = mgr.addContainer( "srv7", "h7", "dev_test", "bash", docker_args={}, ) spawnXtermDocker("srv5") spawnXtermDocker("srv1") CLI(net) mgr.removeContainer("srv1") mgr.removeContainer("srv2") mgr.removeContainer("srv3") mgr.removeContainer("srv4") mgr.removeContainer("srv5") mgr.removeContainer("srv6") mgr.removeContainer("srv7") net.stop() mgr.stop()