def scalability(self, comm, numbers, skip, mean): logs = Logs() plotter = Plotter() for count in numbers: tid = "{}-scalability-{:02d}".format(comm, count) title = "Scalability - {} nodes ({})".format(count, comm.upper()) self.run(comm + "_scalability", tid, count, title, count, skip, logs, mean) if len(logs.keys()) > 0: for cmd in self.commands: xlabel = "Number of nodes" prefix = "{}-scalability-{}".format(comm, cmd) logs.extractThroughput('data/{}-throughput.dat'.format(prefix), cmd) logs.extractLatency('data/{}-latency.dat'.format(prefix), cmd) if len(logs.keys()) > 1: plotter.throughput("{}-throughput".format(prefix), cmd, xlabel) plotter.latency("{}-latency".format(prefix), cmd, xlabel)
def delay(self, comm, delays, skip, mean): logs = Logs() plotter = Plotter() for delay in delays: tid = "{}-delay-{:04d}".format(comm, delay) tc = "netem delay {}ms".format(delay) title = "Delay {}ms ({})".format(delay, comm.upper()) self.run(comm, tid, tc, title, delay, skip, logs, mean) if len(logs.keys()) > 0: for cmd in self.commands: xlabel = "Packet delay [ms]" prefix = "{}-delay-{}".format(comm, cmd) self.extract(logs, prefix, cmd) if len(logs.keys()) > 1: plotter.lostPackets("{}-lost-packets".format(prefix), cmd, xlabel) plotter.firstReceived("{}-first-received".format(prefix), cmd, xlabel) plotter.throughput("{}-throughput".format(prefix), cmd, xlabel) plotter.latency("{}-latency".format(prefix), cmd, xlabel)
def loss(self, comm, losses, skip, mean): logs = Logs() plotter = Plotter() for loss in losses: tid = "{}-loss-{:02d}".format(comm, loss) tc = "netem loss {}%".format(loss) title = "Loss {}% ({})".format(loss, comm.upper()) self.run(comm, tid, tc, title, loss, skip, logs, mean) if len(logs.keys()) > 0: for cmd in self.commands: xlabel = "Packet loss rate [%]" prefix = "{}-loss-{}".format(comm, cmd) self.extract(logs, prefix, cmd) if len(logs.keys()) > 1: plotter.lostPackets("{}-lost-packets".format(prefix), cmd, xlabel) plotter.firstReceived("{}-first-received".format(prefix), cmd, xlabel) plotter.throughput("{}-throughput".format(prefix), cmd, xlabel) plotter.latency("{}-latency".format(prefix), cmd, xlabel)
def limit(self, comm, limits, skip, mean): logs = Logs() plotter = Plotter() for limit in limits: tid = "{}-limit-{:04d}kbit".format(comm, limit) tc = "tbf rate {}kbit burst 32kbit latency 500ms".format(limit) title = "Limit {}kbit ({})".format(limit, comm.upper()) self.run(comm, tid, tc, title, limit, skip, logs, mean) if len(logs.keys()) > 0: for cmd in self.commands: xlabel = "Throughput limit [kbit]" prefix = "{}-limit-{}".format(comm, cmd) self.extract(logs, prefix, cmd) if len(logs.keys()) > 1: plotter.lostPackets("{}-lost-packets".format(prefix), cmd, xlabel) plotter.firstReceived("{}-first-received".format(prefix), cmd, xlabel) plotter.throughput("{}-throughput".format(prefix), cmd, xlabel) plotter.latency("{}-latency".format(prefix), cmd, xlabel)
def duplication(self, comm, dups, skip, mean): logs = Logs() plotter = Plotter() for dup in dups: tid = "{}-duplication-{:02d}".format(comm, dup) tc = "netem duplicate {}%".format(dup) title = "Duplication {}% ({})".format(dup, comm.upper()) self.run(comm, tid, tc, title, dup, skip, logs, mean) if len(logs.keys()) > 0: for cmd in self.commands: xlabel = "Duplication rate [%]" prefix = "{}-duplication-{}".format(comm, cmd) self.extract(logs, prefix, cmd) if len(logs.keys()) > 1: plotter.lostPackets("{}-lost-packets".format(prefix), cmd, xlabel) plotter.firstReceived("{}-first-received".format(prefix), cmd, xlabel) plotter.throughput("{}-throughput".format(prefix), cmd, xlabel) plotter.latency("{}-latency".format(prefix), cmd, xlabel)
def reorder(self, comm, reorders, skip, mean): logs = Logs() plotter = Plotter() for reorder in reorders: tid = "{}-reorder-{:02d}".format(comm, reorder) tc = "netem reorder {}% delay 25ms".format(reorder) title = "Reorders {}% ({})".format(reorder, comm.upper()) self.run(comm, tid, tc, title, reorder, skip, logs, mean) if len(logs.keys()) > 0: for cmd in self.commands: xlabel = "Reordering rate [%]" prefix = "{}-reorder-{}".format(comm, cmd) self.extract(logs, prefix, cmd) if len(logs.keys()) > 1: plotter.lostPackets("{}-lost-packets".format(prefix), cmd, xlabel) plotter.firstReceived("{}-first-received".format(prefix), cmd, xlabel) plotter.throughput("{}-throughput".format(prefix), cmd, xlabel) plotter.latency("{}-latency".format(prefix), cmd, xlabel)