systematic use of context managers for dealing with files instead of open()/close...
[nepi.git] / examples / openvswitch / ping_over_udpTapTunnel_performance_test_triangleTopo.py
index e85da45..51e4a03 100644 (file)
@@ -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
@@ -43,37 +42,38 @@ import time
 
 ### Useful Method to Create RM ##
 def add_node(ec, host, user):
-    node = ec.register_resource("PlanetlabNode")
+    node = ec.register_resource("planetlab::Node")
     ec.set(node, "hostname", host)
     ec.set(node, "username", user)
-    ec.set(node, "cleanHome", True)
+    ec.set(node, "cleanExperiment", True)
     ec.set(node, "cleanProcesses", True)
     return node
 
-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_udptun(ec, tap1, tap2):
-    udptun = ec.register_resource("UdpTunnel")
+    udptun = ec.register_resource("udp::Tunnel")
     ec.register_connection(tap1, udptun)
     ec.register_connection(tap2, udptun)
     return udptun
 
-def add_vroute(ec, network, tap):
-    vroute = ec.register_resource("PlanetlabVroute")
-    ec.set(vroute, "action", "add")
+def add_vroute(ec, network, prefix, tap):
+    vroute = ec.register_resource("planetlab::Vroute")
     ec.set(vroute, "network", network)
+    ec.set(vroute, "prefix", prefix)
+    ec.set(vroute, "nexthop", ec.get(tap, "pointopoint"))
     ec.register_connection(vroute, tap)
     return vroute
 
 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,28 +94,28 @@ ec = ExperimentController(exp_id = "test-tap-tunnel")
      
 ## Create The topology ##   
 host1 = add_node(ec, hostname_host1, user)
-tap1 = add_tap(ec, "192.168.3.1", 24, "192.168.3.2", host1)
+tap1 = add_tap(ec, "192.168.3.1", "24", "192.168.3.2", host1)
 
 switch1 = add_node(ec, hostname_switch1, user)
-tap2 = add_tap(ec, "192.168.3.2", 24, "192.168.3.1", switch1)
-tap102 = add_tap(ec, "192.168.3.102", 29, "192.168.3.104", switch1)
-tap152 = add_tap(ec, "192.168.3.152", 29, "192.168.3.156", switch1)
+tap2 = add_tap(ec, "192.168.3.2", "24", "192.168.3.1", switch1)
+tap102 = add_tap(ec, "192.168.3.102", "29", "192.168.3.104", switch1)
+tap152 = add_tap(ec, "192.168.3.152", "29", "192.168.3.156", switch1)
 
 host2 = add_node(ec, hostname_host2, user)
-tap13 = add_tap(ec, "192.168.3.13", 24, "192.168.3.14", host2)
+tap13 = add_tap(ec, "192.168.3.13", "24", "192.168.3.14", host2)
 
 switch2 = add_node(ec, hostname_switch2, user)
-tap14 = add_tap(ec, "192.168.3.14", 24, "192.168.3.13", switch2)
-tap104 = add_tap(ec, "192.168.3.104", 29, "192.168.3.102", switch2)
-tap204 = add_tap(ec, "192.168.3.204", 29, "192.168.3.206", switch2)
+tap14 = add_tap(ec, "192.168.3.14", "24", "192.168.3.13", switch2)
+tap104 = add_tap(ec, "192.168.3.104", "29", "192.168.3.102", switch2)
+tap204 = add_tap(ec, "192.168.3.204", "29", "192.168.3.206", switch2)
 
 host3 = add_node(ec, hostname_host3, user)
-tap25 = add_tap(ec, "192.168.3.25", 24, "192.168.3.26", host3)
+tap25 = add_tap(ec, "192.168.3.25", "24", "192.168.3.26", host3)
 
 switch3 = add_node(ec, hostname_switch3, user)
-tap26 = add_tap(ec, "192.168.3.26", 24, "192.168.3.25", switch3)
-tap156 = add_tap(ec, "192.168.3.156", 29, "192.168.3.152", switch3)
-tap206 = add_tap(ec, "192.168.3.206", 29, "192.168.3.204", switch3)
+tap26 = add_tap(ec, "192.168.3.26", "24", "192.168.3.25", switch3)
+tap156 = add_tap(ec, "192.168.3.156", "29", "192.168.3.152", switch3)
+tap206 = add_tap(ec, "192.168.3.206", "29", "192.168.3.204", switch3)
 
 ## Create the UDP Tunnel ## 
 udptun1 = add_udptun(ec, tap1, tap2)
@@ -127,16 +127,16 @@ udptun5 = add_udptun(ec, tap152, tap156)
 udptun6 = add_udptun(ec, tap204, tap206)
 
 ## Create the PlanetLab Route ## 
-vroute1 = add_vroute(ec, "192.168.3.0", tap1)
-vroute2 = add_vroute(ec, "192.168.3.0", tap13)
-vroute3 = add_vroute(ec, "192.168.3.0", tap25)
+vroute1 = add_vroute(ec, "192.168.3.0", "24", tap1)
+vroute2 = add_vroute(ec, "192.168.3.0", "24", tap13)
+vroute3 = add_vroute(ec, "192.168.3.0", "24", tap25)
 
-vroute7 = add_vroute(ec, "192.168.3.8", tap102)
-vroute8 = add_vroute(ec, "192.168.3.0", tap104)
-vroute9 = add_vroute(ec, "192.168.3.24", tap152)
-vroute10 = add_vroute(ec, "192.168.3.0", tap156)
-vroute11 = add_vroute(ec, "192.168.3.24", tap204)
-vroute12 = add_vroute(ec, "192.168.3.8", tap206)
+vroute7 = add_vroute(ec, "192.168.3.8", "29", tap102)
+vroute8 = add_vroute(ec, "192.168.3.0", "29", tap104)
+vroute9 = add_vroute(ec, "192.168.3.24", "29", tap152)
+vroute10 = add_vroute(ec, "192.168.3.0", "29", tap156)
+vroute11 = add_vroute(ec, "192.168.3.24", "29", tap204)
+vroute12 = add_vroute(ec, "192.168.3.8", "29", tap206)
 
 ## Create all the Ping ## 
 
@@ -180,49 +180,44 @@ ping23 = ec.trace(app23, 'stdout')
 ping24 = ec.trace(app24, 'stdout')
 ping25 = ec.trace(app25, 'stdout')
 
-f = open("examples/openvswitch/ping_over_udpTapTunnel_performance_test.txt", 'w')
+with open("examples/openvswitch/ping_over_udpTapTunnel_performance_test.txt", 'w') as f:
 
-if not ping25:
-  ec.shutdown()
+    if not ping25:
+        ec.shutdown()
   
 
-f.write("************ Ping From Host 1 : 192.168.3.1 ********************\n\n")
-f.write(ping1)
-f.write("----------------------------------------\n\n")
-f.write(ping2)
-f.write("----------------------------------------\n\n")
-f.write(ping3)
-f.write("----------------------------------------\n\n")
-f.write(ping4)
-f.write("----------------------------------------\n\n")
-f.write(ping5)
-f.write("************ Ping From Host 2 : 192.168.3.13 ********************\n\n")
-f.write(ping11)
-f.write("----------------------------------------\n\n")
-f.write(ping12)
-f.write("----------------------------------------\n\n")
-f.write(ping13)
-f.write("----------------------------------------\n\n")
-f.write(ping14)
-f.write("----------------------------------------\n\n")
-f.write(ping15)
-f.write("************ Ping From Host 3 : 192.168.3.25 ********************\n\n")
-f.write(ping21)
-f.write("----------------------------------------\n\n")
-f.write(ping22)
-f.write("----------------------------------------\n\n")
-f.write(ping23)
-f.write("----------------------------------------\n\n")
-f.write(ping24)
-f.write("----------------------------------------\n\n")
-f.write(ping25)
-
-f.close()
+    f.write("************ Ping From Host 1 : 192.168.3.1 ********************\n\n")
+    f.write(ping1)
+    f.write("----------------------------------------\n\n")
+    f.write(ping2)
+    f.write("----------------------------------------\n\n")
+    f.write(ping3)
+    f.write("----------------------------------------\n\n")
+    f.write(ping4)
+    f.write("----------------------------------------\n\n")
+    f.write(ping5)
+    f.write("************ Ping From Host 2 : 192.168.3.13 ********************\n\n")
+    f.write(ping11)
+    f.write("----------------------------------------\n\n")
+    f.write(ping12)
+    f.write("----------------------------------------\n\n")
+    f.write(ping13)
+    f.write("----------------------------------------\n\n")
+    f.write(ping14)
+    f.write("----------------------------------------\n\n")
+    f.write(ping15)
+    f.write("************ Ping From Host 3 : 192.168.3.25 ********************\n\n")
+    f.write(ping21)
+    f.write("----------------------------------------\n\n")
+    f.write(ping22)
+    f.write("----------------------------------------\n\n")
+    f.write(ping23)
+    f.write("----------------------------------------\n\n")
+    f.write(ping24)
+    f.write("----------------------------------------\n\n")
+    f.write(ping25)
 
 # Delete the overlay network
 ec.shutdown()
 
 
-
-
-