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