X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=examples%2Fopenvswitch%2Fovs_ping_3switches_loop.py;h=3052b78aab1897300a09bdab0a39a4896c83ab20;hb=d50ba1a08e541ded7a8b322493ebb1d0cc59c6ff;hp=9465f0823dda52178c9a0bb0eb3a1dfaf27efa82;hpb=c2acc774e82685942698b64e8ca7b4a27200e5dc;p=nepi.git diff --git a/examples/openvswitch/ovs_ping_3switches_loop.py b/examples/openvswitch/ovs_ping_3switches_loop.py index 9465f082..3052b78a 100644 --- a/examples/openvswitch/ovs_ping_3switches_loop.py +++ b/examples/openvswitch/ovs_ping_3switches_loop.py @@ -16,14 +16,25 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # -# Author: Alina Quereilhac -# Alexandros Kouvakas +# Authors : Julien Tribino +# Alina Quereilhac # -# Switch1 ------- Switch2 -# / \ -# / \ -# / \ -# Host1 Host2 +# Topology : +# +# Host3 +# | +# | +# | +# Switch3 +# / \ +# / \ +# / \ +# / \ +# Switch1 ----- Switch2 +# / \ +# / \ +# / \ +# Host1 Host2 @@ -31,20 +42,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("OVSWitch") + 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) @@ -52,30 +63,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, endpoint_ip, endpoint_prefix, pointopoint, node): + tap = ec.register_resource("planetlab::Tap") + ec.set(tap, "endpoint_ip", endpoint_ip) + ec.set(tap, "endpoint_prefix", endpoint_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 @@ -83,16 +94,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") @@ -108,15 +124,15 @@ 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) @@ -128,12 +144,12 @@ 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) @@ -154,8 +170,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') @@ -205,6 +220,3 @@ f.close() ec.shutdown() - - -