def add_ns3_fdnd(self, ns3_desc, node):
fdnd = ns3_desc.create("ns3::FdNetDevice")
node.connector("devs").connect(fdnd.connector("node"))
- fdnd.enable_trace("FdPcapTrace")
+ #fdnd.enable_trace("FdPcapTrace")
return fdnd
def add_ns3_node(self, ns3_desc):
wifi.connector("mac").connect(mac.connector("dev"))
wifi.connector("manager").connect(manager.connector("dev"))
- phy.enable_trace("YansWifiPhyPcapTrace")
+ #phy.enable_trace("YansWifiPhyPcapTrace")
return wifi, phy
def add_ns3_constant_mobility(self, ns3_desc, node, x, y, z):
pl_desc.set_attribute_value("plcHost", plchost)
pl_desc.set_attribute_value("tapPortBase", port_base)
pl_desc.set_attribute_value("p2pDeployment", False) # it's interactive, we don't want it in tests
- pl_desc.set_attribute_value("dedicatedSlice", True)
+ #pl_desc.set_attribute_value("dedicatedSlice", True)
pl_desc.set_attribute_value("plLogLevel", "DEBUG")
return pl_desc
def add_pl_ns3_connection(self, pl_desc, pl_node, pl_addr,
ns3_desc, ns3_node, ns3_addr):
- pl_tap = pl_desc.create("TapInterface")
+ pl_tap = pl_desc.create("TunInterface")
pl_tap.set_attribute_value("tun_cipher", "PLAIN")
self.add_ip_address(pl_tap, pl_addr, 30)
pl_node.connector("devs").connect(pl_tap.connector("node"))
def add_pl_ns3_tunchan_connection(self, pl_desc, pl_node, pl_addr,
ns3_desc, ns3_node, ns3_addr):
- pl_tap = pl_desc.create("TapInterface")
+ pl_tap = pl_desc.create("TunInterface")
self.add_ip_address(pl_tap, pl_addr, 30)
pl_node.connector("devs").connect(pl_tap.connector("node"))
ns3_fdnd = ns3_desc.create("ns3::FdNetDevice")
def add_pl_netns_connection(self, pl_desc, pl_node, pl_addr,
netns_desc, netns_node, netns_addr):
- pl_tap = pl_desc.create("TapInterface")
+ pl_tap = pl_desc.create("TunInterface")
+ pl_tap.set_attribute_value("tun_cipher", "PLAIN")
+ #pl_tap.enable_trace("pcap")
+ #pl_tap.enable_trace("packets")
self.add_ip_address(pl_tap, pl_addr, 30)
pl_node.connector("devs").connect(pl_tap.connector("node"))
- netns_tap = netns_desc.create("TapNodeInterface")
+ netns_tap = netns_desc.create("TunNodeInterface")
netns_tap.set_attribute_value("up", True)
+ netns_tap.set_attribute_value("mtu", 1448)
self.add_ip_address(netns_tap, netns_addr, 30)
netns_node.connector("devs").connect(netns_tap.connector("node"))
netns_tunchannel = netns_desc.create("TunChannel")
+ netns_tunchannel.set_attribute_value("tun_cipher", "PLAIN")
netns_tunchannel.connector("->fd").connect(netns_tap.connector("fd->"))
pl_tap.connector("tcp").connect(netns_tunchannel.connector("tcp"))
netns_desc = self.add_netns_testbed(exp_desc)
netns_node = self.add_netns_node(netns_desc)
+ """
## NS3 ##
ns3_desc = self.add_ns3_in_pl(exp_desc, pl_desc, pl_node1, pl_iface1, "ns3")
wifi_chan = self.add_ns3_wifi_channel(ns3_desc)
self.add_route(netns_node, network, 30, (self.base_addr%2))
self.add_route(pl_node1, network, 30, (self.base_addr%6))
self.add_route(ap_node, network, 30, wifi_addr)
-
+ """
# connection PL1/NETNS
pl_addr = (self.base_addr%2)
netns_addr = (self.base_addr%1)
self.add_pl_netns_connection(pl_desc, pl_node1, pl_addr,
netns_desc, netns_node, netns_addr)
-
+ """
# connection PL1/NS3
pl_addr = (self.base_addr%5)
ns3_addr = (self.base_addr%6)
self.add_pl_ns3_connection(pl_desc, pl_node1, pl_addr,
ns3_desc, ap_node, ns3_addr)
-
+ """
# APPLICATIONS
command = "xterm"
app = netns_desc.create("Application")
app.set_attribute_value("command", command)
app.set_attribute_value("user", self.user)
app.connector("node").connect(netns_node.connector("apps"))
+
+ # applications
+ #target = "{#[%s].addr[0].[Address]#}" % label
+ servers = []
+ clients = []
+ net = 0
+ target = self.base_addr%2
+ port = 5065
+ command = "sleep 2; vlc -I dummy %s --sout '#udp{dst=%s:%d}' vlc://quit" \
+ % (self.movie, target, port)
+ vlc_server = netns_desc.create("Application")
+ vlc_server.set_attribute_value("command", command)
+ vlc_server.set_attribute_value("user", self.user)
+ vlc_server.connector("node").connect(netns_node.connector("apps"))
+ servers.append(vlc_server.guid)
+
+ command = "sudo dbus-uuidgen --ensure; vlc -vvv -I dummy udp://@%s:%d --sout '#std{access=file,mux=ts,dst=big_buck_bunny_stream.ts}' " % (target, port)
+ vlc_client = pl_desc.create("Application")
+ vlc_client.set_attribute_value("buildDepends", "vlc")
+ vlc_client.set_attribute_value("rpmFusion", True)
+ vlc_client.set_attribute_value("command", command)
+ vlc_client.enable_trace("stdout")
+ vlc_client.enable_trace("stderr")
+ vlc_client.connector("node").connect(pl_node1.connector("apps"))
+ clients.append(vlc_client.guid)
+ """
# ROUTES
self.add_route(netns_node, (self.base_addr%32), 27, (self.base_addr%2))
self.add_route(netns_node, (self.base_addr%4), 30, (self.base_addr%2))
self.add_route(pl_node1, (self.base_addr%32), 27, (self.base_addr%6))
self.add_route(ap_node, (self.base_addr%0), 30, (self.base_addr%5))
-
+ """
xml = exp_desc.to_xml()
controller = ExperimentController(xml, self.root_dir)
controller.start()
controller.shutdown()
"""
- # applications
- #target = "{#[%s].addr[0].[Address]#}" % label
- target = self.base_addr%(net+1)
- port = 5000 + net + 1
- command = "vlc -I dummy %s --sout '#rtp{dst=%s,port=%d,mux=ts}' vlc://quit" \
- % (self.movie, target, port)
- vlc_server = netns_desc.create("Application")
- vlc_server.set_attribute_value("command", command)
- vlc_server.set_attribute_value("user", self.user)
- vlc_server.connector("node").connect(server.connector("apps"))
- servers.append(vlc_server.guid)
-
- command = "vlc rtp://%s:%d/test.ts" % (target, port)
- vlc_client = netns_desc.create("Application")
- vlc_client.set_attribute_value("command", command)
- vlc_client.set_attribute_value("user", self.user)
- vlc_client.connector("node").connect(nodei.connector("apps"))
- clients.append(vlc_client.guid)
-
xml = exp_desc.to_xml()
controller = ExperimentController(xml, self.root_dir)
controller.start()