You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.3 KiB
Python

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()