from time import sleep from mininet.cli import CLI from mininet.net import Mininet from mininet.util import dumpNodeConnections from mininet.log import setLogLevel, info from mininet.link import TCLink from project.node import BATMANRouter, LinuxRouter, OLSRRouter from project.topo import GraphmlTopo def monitor_test(net): for host in net.hosts: host.cmd('./routing-table-monitor.sh') enable_olsrd(net) sleep(60) for host in net.hosts: host.cmd('kill %bash') def do_enable_olsrd(self, line): net = self.mn enable_olsrd(net) def enable_olsrd(net): for host in net.hosts: host.cmd('olsrd -i ' + ' '.join(host.intfNames())) hosts = {'linuxrouter': LinuxRouter, 'olsrrouter': OLSRRouter, 'batmanrouter': BATMANRouter} topos = {'gmltopo': GraphmlTopo} CLI.do_enable_olsrd = do_enable_olsrd def perfTest(): topo = GraphmlTopo(filename='rural-gephi.graphml') net = Mininet(topo=topo, link=TCLink, host=LinuxRouter) net.start() info("Dumping host connections\n") dumpNodeConnections(net.hosts) info("monitoring routing tables") monitor_test(net) info("Dumping host connections\n") dumpNodeConnections(net.hosts) CLI(net) net.stop() if __name__ == '__main__': setLogLevel('info') # Prevent test_simpleperf from failing due to packet loss perfTest()