X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=examples%2Fopenvswitch%2Fovs_ping_3switches_loop.py;h=30967868d1c4cb6cfe84d00eb3c5b4f5f7d18402;hb=e55924b6886bd7382a28e1ae235c4810f852e163;hp=54b2083db93072bd7372239ee55311dc920f32fd;hpb=7a40d6db82dc5fd7de026b39fdc2bc35887c4e07;p=nepi.git diff --git a/examples/openvswitch/ovs_ping_3switches_loop.py b/examples/openvswitch/ovs_ping_3switches_loop.py index 54b2083d..30967868 100644 --- a/examples/openvswitch/ovs_ping_3switches_loop.py +++ b/examples/openvswitch/ovs_ping_3switches_loop.py @@ -4,9 +4,8 @@ # Copyright (C) 2013 INRIA # # This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation; # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -42,20 +41,20 @@ from nepi.execution.ec import ExperimentController import os, time def add_node(ec, host, user, pl_user, pl_password): - node = ec.register_resource("PlanetlabNode") + node = ec.register_resource("planetlab::Node") ec.set(node, "hostname", host) ec.set(node, "username", user) if pl_user: ec.set(node, "pluser", pl_user) if pl_password: ec.set(node, "plpassword", pl_password) - ec.set(node, "cleanHome", True) + ec.set(node, "cleanExperiment", True) ec.set(node, "cleanProcesses", True) return node def add_ovs(ec, bridge_name, virtual_ip_pref, controller_ip, controller_port, node): - ovs = ec.register_resource("OVSSwitch") + ovs = ec.register_resource("planetlab::OVSSwitch") ec.set(ovs, "bridge_name", bridge_name) ec.set(ovs, "virtual_ip_pref", virtual_ip_pref) ec.set(ovs, "controller_ip", controller_ip) @@ -63,30 +62,30 @@ def add_ovs(ec, bridge_name, virtual_ip_pref, controller_ip, controller_port, no ec.register_connection(ovs, node) return ovs -def add_port(ec, port_name, ovs): - port = ec.register_resource("OVSPort") +def add_port(ec, port_name, network, ovs): + port = ec.register_resource("planetlab::OVSPort") ec.set(port, "port_name", port_name) + ec.set(port, "network", network) ec.register_connection(port, ovs) return port -def add_tap(ec, ip4, prefix4, pointopoint, node): - tap = ec.register_resource("PlanetlabTap") - ec.set(tap, "ip4", ip4) - ec.set(tap, "prefix4", prefix4) +def add_tap(ec, ip, prefix, pointopoint, node): + tap = ec.register_resource("planetlab::Tap") + ec.set(tap, "ip", ip) + ec.set(tap, "prefix", prefix) ec.set(tap, "pointopoint", pointopoint) ec.set(tap, "up", True) ec.register_connection(tap, node) return tap -def add_tunnel(ec, network, port0, tap): - tunnel = ec.register_resource("OVSTunnel") - ec.set(tunnel, "network", network) +def add_tunnel(ec, port0, tap): + tunnel = ec.register_resource("linux::UdpTunnel") ec.register_connection(port0, tunnel) ec.register_connection(tunnel, tap) return tunnel def add_app(ec, command, node): - app = ec.register_resource("LinuxApplication") + app = ec.register_resource("linux::Application") ec.set(app, "command", command) ec.register_connection(app, node) return app @@ -94,16 +93,21 @@ def add_app(ec, command, node): # Create the EC ec = ExperimentController(exp_id = "test-tr") +#XXX : Need to put 6 working nodes or to let Nepi find for you switch1 = "planetlab2.virtues.fi" switch2 = "planetlab2.upc.es" -switch3 = "planetlab2.cs.aueb.gr" +switch3 = "planetlab1.informatik.uni-erlangen.de" host1 = "planetlab2.ionio.gr" host2 = "iraplab2.iralab.uni-karlsruhe.de" host3 = "planetlab2.diku.dk" -ip_controller = "194.254.215.12" +#ip_controller = "194.254.215.12" +ip_controller = "xxx.yyy.zzz.ttt" + +#XXX : Depends on the Vsys_tag of your slice network = "192.168.3.0" +#XXX : Name of your slice slicename = "inria_nepi" pl_user = os.environ.get("PL_USER") @@ -119,32 +123,32 @@ ovs2 = add_ovs(ec, "nepi_bridge_2", "192.168.3.4/24", ip_controller, "6633", s2_ ovs3 = add_ovs(ec, "nepi_bridge_3", "192.168.3.6/24", ip_controller, "6633", s3_node) # Add ports on ovs -port1 = add_port(ec, "nepi_port1", ovs1) -port4 = add_port(ec, "nepi_port4", ovs1) -port7 = add_port(ec, "nepi_port7", ovs1) -port2 = add_port(ec, "nepi_port2", ovs2) -port5 = add_port(ec, "nepi_port5", ovs2) -port8 = add_port(ec, "nepi_port8", ovs2) -port3 = add_port(ec, "nepi_port3", ovs3) -port6 = add_port(ec, "nepi_port6", ovs3) -port9 = add_port(ec, "nepi_port9", ovs3) +port1 = add_port(ec, "nepi_port1", network, ovs1) +port4 = add_port(ec, "nepi_port4", network, ovs1) +port7 = add_port(ec, "nepi_port7", network, ovs1) +port2 = add_port(ec, "nepi_port2", network, ovs2) +port5 = add_port(ec, "nepi_port5", network, ovs2) +port8 = add_port(ec, "nepi_port8", network, ovs2) +port3 = add_port(ec, "nepi_port3", network, ovs3) +port6 = add_port(ec, "nepi_port6", network, ovs3) +port9 = add_port(ec, "nepi_port9", network, ovs3) h1_node = add_node(ec, host1, slicename, pl_user, pl_password) h2_node = add_node(ec, host2, slicename, pl_user, pl_password) h3_node = add_node(ec, host3, slicename, pl_user, pl_password) # Add tap devices -tap1 = add_tap(ec, "192.168.3.1", 24, "192.168.3.2", h1_node) -tap2 = add_tap(ec, "192.168.3.3", 24, "192.168.3.4", h2_node) -tap3 = add_tap(ec, "192.168.3.5", 24, "192.168.3.6", h3_node) +tap1 = add_tap(ec, "192.168.3.1", "24", "192.168.3.2", h1_node) +tap2 = add_tap(ec, "192.168.3.3", "24", "192.168.3.4", h2_node) +tap3 = add_tap(ec, "192.168.3.5", "24", "192.168.3.6", h3_node) # Connect the nodes -tunnel1 = add_tunnel(ec, network, port1, tap1) -tunnel2 = add_tunnel(ec, network, port2, tap2) -tunnel3 = add_tunnel(ec, network, port3, tap3) -tunnel4 = add_tunnel(ec, network, port4, port5) -tunnel5 = add_tunnel(ec, network, port7, port6) -tunnel6 = add_tunnel(ec, network, port8, port9) +tunnel1 = add_tunnel(ec, port1, tap1) +tunnel2 = add_tunnel(ec, port2, tap2) +tunnel3 = add_tunnel(ec, port3, tap3) +tunnel4 = add_tunnel(ec, port4, port5) +tunnel5 = add_tunnel(ec, port7, port6) +tunnel6 = add_tunnel(ec, port8, port9) # Add ping commands app1 = add_app(ec, "ping -c5 192.168.3.4", s1_node) @@ -165,8 +169,7 @@ ec.deploy() ec.wait_finished([app1, app2, app3, app4, app5, app6, app7, app8, app9, app10, app11, app12]) -# Retreive ping results and save -# them in a file +# Retreive ping results and save them in a file ping1 = ec.trace(app1, 'stdout') ping2 = ec.trace(app2, 'stdout') ping3 = ec.trace(app3, 'stdout') @@ -216,6 +219,3 @@ f.close() ec.shutdown() - - -