--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#
+# Experiment Topology:
+#
+# n1 --- n2
+# 0.1 0.2
+#
+
+from nepi.core.design import ExperimentDescription, FactoriesProvider
+from nepi.core.execute import ExperimentController
+import getpass
+import logging
+import tempfile
+import time
+
+logging.basicConfig(level=logging.DEBUG)
+
+root_dir = tempfile.mkdtemp()
+
+exp_desc = ExperimentDescription()
+
+testbed_id = "omf"
+omf_provider = FactoriesProvider(testbed_id)
+omf_desc = exp_desc.add_testbed_description(omf_provider)
+omf_desc.set_attribute_value("homeDirectory", root_dir)
+omf_desc.set_attribute_value("enableDebug", True)
+omf_desc.set_attribute_value("xmppSlice", "default_slice_iMinds")
+omf_desc.set_attribute_value("xmppHost", "xmpp.ilabt.iminds.be")
+omf_desc.set_attribute_value("xmppPort", 5222)
+omf_desc.set_attribute_value("xmppPassword", "1234")
+
+# Add node1
+node1 = omf_desc.create("Node")
+node1.set_attribute_value("hostname", "omf.ibbt.open.node3")
+
+# Add configuration for interface 1
+iface1 = omf_desc.create("WifiInterface")
+iface1.set_attribute_value("alias", "w0")
+iface1.set_attribute_value("mode", "adhoc")
+iface1.set_attribute_value("channel", "6")
+iface1.set_attribute_value("type", "g")
+iface1.set_attribute_value("essid", "cvlcmode")
+iface1.set_attribute_value("ip", "192.168.0.3")
+node1.connector("devs").connect(iface1.connector("node"))
+
+# Add multicast route to node 1
+route1 = node1.add_route()
+route1.set_attribute_value("Destination", "224.0.0.0")
+route1.set_attribute_value("NetPrefix", 4)
+route1.set_attribute_value("Device", "wlan0")
+
+# Add node2
+node2 = omf_desc.create("Node")
+node2.set_attribute_value("hostname", "omf.ibbt.open.node4")
+
+# Add configuration for interface 2
+iface2 = omf_desc.create("WifiInterface")
+iface2.set_attribute_value("alias", "w0")
+iface2.set_attribute_value("mode", "adhoc")
+iface2.set_attribute_value("channel", "6")
+iface2.set_attribute_value("type", "g")
+iface2.set_attribute_value("essid", "cvlcmode")
+iface2.set_attribute_value("ip", "192.168.0.4")
+node2.connector("devs").connect(iface2.connector("node"))
+
+# Add multicast route to node 2
+route2 = node2.add_route()
+route2.set_attribute_value("Destination", "224.0.0.0")
+route2.set_attribute_value("NetPrefix", 4)
+route2.set_attribute_value("Device", "wlan0")
+
+# Add a channel
+channel = omf_desc.create("Channel")
+channel.set_attribute_value("mode", "adhoc")
+channel.set_attribute_value("channel", "6")
+channel.set_attribute_value("type", "g")
+channel.set_attribute_value("essid", "cvlcmode")
+channel.connector("devs").connect(iface1.connector("chan"))
+channel.connector("devs").connect(iface2.connector("chan"))
+
+# Add a vlc server to stream a video using multicast
+app1 = omf_desc.create("OmfApplication")
+app1.set_attribute_value("appId", "Vlc#1")
+app1.set_attribute_value("arguments", "/opt/bbb_240p_mpeg4_lq.ts --sout '#rtp{dst=239.255.0.1,port=1234,mux=ts}' vlc://quit")
+app1.set_attribute_value("path", "/opt/vlc-1.1.13/cvlc")
+app1.set_attribute_value("env", "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
+app1.connector("node").connect(node1.connector("apps"))
+
+# Add a vlc client to receive the video stream
+app2 = omf_desc.create("OmfApplication")
+app2.set_attribute_value("appId", "Vlc#2")
+app2.set_attribute_value("arguments", "rtp://239.255.0.1:1234")
+app2.set_attribute_value("path", "/opt/vlc-1.1.13/cvlc")
+# To see the stream to a ssh -X connection, the DISPLAY variable must be set to the value of the node.
+# Also don't forget to execute in 'xhost + localhost' in the node
+app2.set_attribute_value("env", "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
+app2.connector("node").connect(node2.connector("apps"))
+
+xml = exp_desc.to_xml()
+
+controller = ExperimentController(xml, root_dir)
+controller.start()
+#while not (controller.is_finished(app1.guid) and \
+# controller.is_finished(app2.guid)):
+# time.sleep(0.5)
+
+time.sleep(10)
+
+#controller.set(iface2.guid, "channel", "1")
+
+#time.sleep(5)
+
+controller.stop()
+controller.shutdown()
+
--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+#
+# Experiment Topology:
+#
+# n1 --- n2
+# 0.1 0.2
+#
+
+from nepi.core.design import ExperimentDescription, FactoriesProvider
+from nepi.core.execute import ExperimentController
+import getpass
+import logging
+import tempfile
+import time
+
+logging.basicConfig(level=logging.DEBUG)
+
+root_dir = tempfile.mkdtemp()
+
+exp_desc = ExperimentDescription()
+
+testbed_id = "omf"
+omf_provider = FactoriesProvider(testbed_id)
+omf_desc = exp_desc.add_testbed_description(omf_provider)
+omf_desc.set_attribute_value("homeDirectory", root_dir)
+omf_desc.set_attribute_value("enableDebug", True)
+omf_desc.set_attribute_value("xmppSlice", "tribino")
+omf_desc.set_attribute_value("xmppHost", "nitlab.inf.uth.gr")
+omf_desc.set_attribute_value("xmppPort", 5222)
+omf_desc.set_attribute_value("xmppPassword", "1234")
+
+# Add node1
+node1 = omf_desc.create("Node")
+node1.set_attribute_value("hostname", "omf.nitos.node019")
+
+# Add configuration for interface 1
+iface1 = omf_desc.create("WifiInterface")
+iface1.set_attribute_value("alias", "w0")
+iface1.set_attribute_value("mode", "adhoc")
+iface1.set_attribute_value("channel", "6")
+iface1.set_attribute_value("type", "g")
+iface1.set_attribute_value("essid", "cvlcmode")
+iface1.set_attribute_value("ip", "192.168.0.19")
+node1.connector("devs").connect(iface1.connector("node"))
+
+# Add multicast route to node 1
+route1 = node1.add_route()
+route1.set_attribute_value("Destination", "224.0.0.0")
+route1.set_attribute_value("NetPrefix", 4)
+route1.set_attribute_value("Device", "wlan0")
+
+# Add node2
+node2 = omf_desc.create("Node")
+node2.set_attribute_value("hostname", "omf.nitos.node020")
+
+# Add configuration for interface 2
+iface2 = omf_desc.create("WifiInterface")
+iface2.set_attribute_value("alias", "w0")
+iface2.set_attribute_value("mode", "adhoc")
+iface2.set_attribute_value("channel", "6")
+iface2.set_attribute_value("type", "g")
+iface2.set_attribute_value("essid", "cvlcmode")
+iface2.set_attribute_value("ip", "192.168.0.20")
+node2.connector("devs").connect(iface2.connector("node"))
+
+# Add multicast route to node 2
+route2 = node2.add_route()
+route2.set_attribute_value("Destination", "224.0.0.0")
+route2.set_attribute_value("NetPrefix", 4)
+route2.set_attribute_value("Device", "wlan0")
+
+# Add a channel
+channel = omf_desc.create("Channel")
+channel.set_attribute_value("mode", "adhoc")
+channel.set_attribute_value("channel", "6")
+channel.set_attribute_value("type", "g")
+channel.set_attribute_value("essid", "cvlcmode")
+channel.connector("devs").connect(iface1.connector("chan"))
+channel.connector("devs").connect(iface2.connector("chan"))
+
+# Add a vlc server to stream a video using multicast
+app1 = omf_desc.create("OmfApplication")
+app1.set_attribute_value("appId", "Vlc#1")
+app1.set_attribute_value("arguments", "/opt/bbb_240p_mpeg4_lq.ts --sout '#rtp{dst=239.255.0.1,port=1234,mux=ts}' vlc://quit")
+app1.set_attribute_value("path", "/opt/vlc-1.1.13/cvlc")
+app1.set_attribute_value("env", "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
+app1.connector("node").connect(node1.connector("apps"))
+
+# Add a vlc client to receive the video stream
+app2 = omf_desc.create("OmfApplication")
+app2.set_attribute_value("appId", "Vlc#2")
+app2.set_attribute_value("arguments", "rtp://239.255.0.1:1234")
+app2.set_attribute_value("path", "/opt/vlc-1.1.13/cvlc")
+# To see the stream to a ssh -X connection, the DISPLAY variable must be set to the value of the node.
+# Also don't forget to execute in 'xhost + localhost' in the node
+app2.set_attribute_value("env", "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
+app2.connector("node").connect(node2.connector("apps"))
+
+xml = exp_desc.to_xml()
+
+controller = ExperimentController(xml, root_dir)
+controller.start()
+#while not (controller.is_finished(app1.guid) and \
+# controller.is_finished(app2.guid)):
+# time.sleep(0.5)
+
+time.sleep(10)
+
+#controller.set(iface2.guid, "channel", "1")
+
+#time.sleep(5)
+
+controller.stop()
+controller.shutdown()
+
iface1.set_attribute_value("channel", "6")
iface1.set_attribute_value("type", "g")
iface1.set_attribute_value("essid", "cvlcmode")
-iface1.set_attribute_value("ip", "192.168.0.17")
+iface1.set_attribute_value("ip", "10.0.0.17")
node1.connector("devs").connect(iface1.connector("node"))
# Add multicast route to node 1
iface2.set_attribute_value("channel", "6")
iface2.set_attribute_value("type", "g")
iface2.set_attribute_value("essid", "cvlcmode")
-iface2.set_attribute_value("ip", "192.168.0.37")
+iface2.set_attribute_value("ip", "10.0.0.37")
node2.connector("devs").connect(iface2.connector("node"))
# Add multicast route to node 2
# Add a vlc server to stream a video using multicast
app1 = omf_desc.create("OmfApplication")
app1.set_attribute_value("appId", "Vlc#1")
-app1.set_attribute_value("arguments", "/opt/bbb_240p_mpeg4_lq.ts --sout '#rtp{dst=239.255.0.1,port=1234,mux=ts}' vlc://quit")
+#app1.set_attribute_value("arguments", "/opt/bbb_240p_mpeg4_lq.ts --sout '#rtp{dst=239.255.0.1,port=1234,mux=ts}' vlc://quit")
+app1.set_attribute_value("arguments", "/opt/bbb_240p_mpeg4_lq.ts --sout '#rtp{dst=10.0.0.37,port=1234,mux=ts}' vlc://quit")
app1.set_attribute_value("path", "/opt/vlc-1.1.13/cvlc")
app1.set_attribute_value("env", "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
app1.connector("node").connect(node1.connector("apps"))
# Add a vlc client to receive the video stream
app2 = omf_desc.create("OmfApplication")
app2.set_attribute_value("appId", "Vlc#2")
-app2.set_attribute_value("arguments", "rtp://239.255.0.1:1234")
+#app2.set_attribute_value("arguments", "rtp://239.255.0.1:1234")
+app2.set_attribute_value("arguments", "rtp://10.0.0.37:1234")
app2.set_attribute_value("path", "/opt/vlc-1.1.13/cvlc")
# To see the stream to a ssh -X connection, the DISPLAY variable must be set to the value of the node.
# Also don't forget to execute in 'xhost + localhost' in the node
# controller.is_finished(app2.guid)):
# time.sleep(0.5)
-time.sleep(5)
+time.sleep(30)
#controller.set(iface2.guid, "channel", "1")
self.add_event_handler("pubsub_publish", self.handle_omf_message)
self._logger = logging.getLogger("nepi.testbeds.omf")
-
+
@property
def ready(self):
return self._ready