# log cpu% on every node
            cpuLogging = CPUlogApp(emu.getNodes(), 1)
            
            # setup applications based on groups established before
            ndn_apps = []

            for server in groups:
                clients = groups[server]
                gateways = []
                for client in clients:
                    gateways.append(clientGatewayAssoc[client.getId()])

                #   dashproducer
                server_params = "--prefix /Node" + str(server.getId()) + " --document-root /home/nfd/data/concatenated/ --data-size 2048 --threads 1"

                #   dashplayer
                client_params = "--name /Node" + str(server.getId()) + "/BBB_ED.mpd -r 12000 -l 500 -a buffer"

                if app_type == "NDN_DemoApps":
                    # NDN_DemoApps(server, clients, start, duration, server_params, client_params, routingcmds)
                    ndn_apps.append(NDN_DemoApps(server, clients, 0.0, 0, server_params, client_params,[]))
                elif app_type == "NDN_DemoAppsWLDR":
                    # NDN_DemoAppsWLDR(server, clients, start, duration, server_params, client_params, routingcmds)
                    ndn_apps.append(NDN_DemoAppsWLDR(server, clients, gateways, 0.0, 0, server_params, client_params, []))
                else:
                    raise ValueError("unknown application type: " + app_type)


            emu.addApplications([ndn_NetworkOverlay, cpuLogging] + ndn_apps)
            emu.start(run)
Ejemplo n.º 2
0
from emulation_lib.apps.udperf_app import UdperfApp
from emulation_lib.linkcmd_backends.l_ import L_

emu = Emulation("../example.config.py", [0, 1])
emu.setLinkCmdBackend(L_())
n0 = emu.getNode(0)
n1 = emu.getNode(1)

# http://dashif.org/wp-content/uploads/2015/04/DASH-AVC-264-Test-Vectors-v09-CommunityReview.pdf
nb1 = NetworkBlock("./blocks/flicflac")
nb1.setNodes([n0, n1])
nb1.selectInterval(1000)

emu.addNetworkBlocks([nb1])

udperf_app = UdperfApp(n1, n0, 0.0, 12, 10000, 6000, 6001)

n1.addUserResult("/home/nfd/cmdScheduler.log",
                 "cmdSched" + str(n1.getId()) + ".log_%RUN%")

emu.setDuration(14)

emu.addApplications([udperf_app])

emu.setName('flicflac_loss')
emu.setOutputDirectory('./results/' + emu.getName())
emu.setNumberOfRuns(10)
emu.setSecondsBetweenRuns(5)

emu.start()
Ejemplo n.º 3
0
emu = Emulation("./config_files/example.config.py", [0, 1])
emu.setLinkCmdBackend(BDL_())
n0 = emu.getNode(0)
n1 = emu.getNode(1)

nb1 = NetworkBlock("./blocks/TwoNode_80211a_adhoc")
nb1.setNodes([n0, n1])

emu.addNetworkBlocks([nb1])

udperf_app1 = UdperfApp(n0, n1, 0.0, 99, 9000, 6000, 6001)
udperf_app2 = UdperfApp(n1, n0, 0.0, 99, 9000, 6000, 6001)

n0.addUserResult("/home/nfd/cmdScheduler.log", "cmdSched0.log_%RUN%")
n1.addUserResult("/home/nfd/cmdScheduler.log", "cmdSched1.log_%RUN%")

emu.setDuration(102)

emu.addApplications([udperf_app1, udperf_app2])

emu.setName('simple_sequence')
emu.setNumberOfRuns(3)
emu.setSecondsBetweenRuns(15)

for intervalSize in [1000, 500, 250, 100]:
    emu.setName(intervalSize)
    emu.setOutputDirectory('./results/simple_sequence/' + emu.getName())
    nb1.selectInterval(intervalSize)
    emu.start()
Ejemplo n.º 4
0
nb1 = NetworkBlock("./blocks/symmetric")
nb1.setNodes([n0, n1])
nb1.selectInterval(1000)

nb2 = NetworkBlock("./blocks/symmetric")
nb2.setNodes([n2, n1])
nb2.selectInterval(1000)

nb3 = NetworkBlock("./blocks/symmetric")
nb3.setNodes([n3, n1])
nb3.selectInterval(1000)

emu.addNetworkBlocks([nb1, nb2, nb3])

udperf_app0 = UdperfApp(n1, n0, 0.0, 12, 6000, 6000, 6001)
udperf_app2 = UdperfApp(n1, n2, 0.0, 12, 6000, 6000, 6002)  # own-Ports must be unique on the same node!
udperf_app3 = UdperfApp(n1, n3, 0.0, 12, 6000, 6000, 6003)

n1.addUserResult("/home/nfd/cmdScheduler.log", "cmdSched" + str(n1.getId()) + ".log_%RUN%")

emu.setDuration(14)

emu.addApplications([udperf_app0, udperf_app2, udperf_app3])

emu.setName('symmetric_threeFlows')
emu.setOutputDirectory('./results/' + emu.getName())
emu.setNumberOfRuns(0)
emu.setSecondsBetweenRuns(5)

emu.start()
Ejemplo n.º 5
0
nb1.selectInterval(1000)

nb2 = NetworkBlock("./blocks/TwoNode_80211a_adhoc")
nb2.setNodes([n2, n3])
nb2.selectedInterval(1000)

emu.addNetworkBlocks([snb, nb1, nb2])

udperf_app0_1 = UdperfApp(n0, n1, 0.0, 99, 9000, 6000, 6001)
udperf_app1_0 = UdperfApp(n1, n0, 0.0, 99, 9000, 6000, 6001)
udperf_app0_2 = UdperfApp(n0, n2, 0.0, 99, 9000, 6000, 6001)
udperf_app2_0 = UdperfApp(n2, n0, 0.0, 99, 9000, 6000, 6001)
udperf_app1_3 = UdperfApp(n1, n3, 0.0, 99, 9000, 6000, 6001)
udperf_app3_1 = UdperfApp(n3, n1, 0.0, 99, 9000, 6000, 6001)
udperf_app2_3 = UdperfApp(n2, n3, 0.0, 99, 9000, 6000, 6001)
udperf_app3_2 = UdperfApp(n3, n2, 0.0, 99, 9000, 6000, 6001)

emu.setDuration(102)

emu.addApplications([
    udperf_app0_1, udperf_app1_0, udperf_app0_2, udperf_app2_0, udperf_app1_3,
    udperf_app3_1, udperf_app2_3, udperf_app3_2
])

emu.setName('simpleFourNodeStatic')
emu.setOutputDirectory('./results/' + emu.getName())
emu.setNumberOfRuns(3)
emu.setSecondsBetweenRuns(15)

emu.start()
            # parse topology file and retrieve connections (abilene)
            ndn_NetworkOverlay = NDN_NetworkOverlay(emu.getNodes(), topology, "shortest", "/localhost/nfd/strategy/best-route")

            # setup applications based on groups established before
            ndn_apps = []

            for server in groups:
                clients = groups[server]
                gateways = []
                for client in clients:
                    gateways.append(clientGatewayAssoc[client.getId()])

                #   dashproducer
                server_params = "--prefix /Node" + str(server.getId()) + " --document-root /home/nfd/data/concatenated/ --data-size 2048 --threads 1"

                #   dashplayer
                client_params = "--name /Node" + str(server.getId()) + "/BBB_ED.mpd -r 12000 -l 500 -a buffer"

                if app_type == "NDN_DemoApps":
                    # NDN_DemoApps(server, clients, start, duration, server_params, client_params, routingcmds)
                    ndn_apps.append(NDN_DemoApps(server, clients, 0.0, 0, server_params, client_params, []))
                elif app_type == "NDN_DemoAppsWLDR":
                    # NDN_DemoAppsWLDR(server, clients, start, duration, server_params, client_params, routingcmds)
                    ndn_apps.append(NDN_DemoAppsWLDR(server, clients, gateways, 0.0, 0, server_params, client_params, []))
                else:
                    raise ValueError("unknown application type: " + app_type)


            emu.addApplications([ndn_NetworkOverlay] + ndn_apps)
            emu.start(run)
#
# configure the applications to be run
#
# Perform iperf bandwidth measurement (UDP) from client_node to server_node.
# Create a new application functional block, passing node references.
# This application block takes care of the application lifecycle (here starting/stopping an iperf UDP bandwidth test)
# as well as the collection of results.
# server, client, client_runtime[s], client_bandwidth[Mbps]
iperfApp = iperf_logapp.IperfLogApp(server=emu.getNode(0),
                                    client=emu.getNode(1),
                                    client_runtime=EMULATION_DURATION - 1,
                                    client_bandwidth=100)

# add the application to the emulation object
emu.addApplications([iperfApp])

# schedule some arbitrary commands at three time points (second 0, 30 and 90 of the emulation)
for node in emu.getNodes():
    node.scheduleUserCmd(0, "date > /home/nfd/cmdExample.txt")
    node.scheduleUserCmd(30, "date >> /home/nfd/cmdExample.txt")
    node.scheduleUserCmd(90, "date >> /home/nfd/cmdExample.txt")

# Fetch the files created by the previous commands, additionally fetch the logfiles of the command scheduler.
# addUserResult() adds a file to the emulation results that are to be fetched from the nodes.
# The marker "%RUN% is replaced with the actual run-number before the start of the run.
for node in emu.getNodes():
    node.addUserResult("/home/nfd/cmdExample.txt",
                       "cmdExample" + str(node.getId()) + ".log_%RUN%")
    node.addUserResult("/home/nfd/cmdScheduler.log",
                       "cmdSched" + str(node.getId()) + ".log_%RUN%")