from mininet.log import setLogLevel, info
from mn_wifi.link import wmediumd, mesh
from mn_wifi.cli import CLI
from mn_wifi.net import Mininet_wifi
from mininet.node import Controller, RemoteController, OVSKernelSwitch , Host
from mn_wifi.wmediumdConnector import interference
def topology():
"Create a network."
net = Mininet_wifi(link=wmediumd, wmediumd_mode=interference)
info("*** Creating nodes\n")
ap1 = net.addAccessPoint('ap1', position='-200,100,0', ssid='ssid1', mode='g', channel='1')
ap2 = net.addAccessPoint('ap2', position='-100,200,0', ssid='ssid2', mode='g', channel='1')
ap3 = net.addAccessPoint('ap3', position='-100,0,0', ssid='ssid3', mode='g', channel='1')
ap4 = net.addAccessPoint('ap4', position='100,200,0', ssid='ssid4', mode='g', channel='1')
ap5 = net.addAccessPoint('ap5', position='100,0,0', ssid='ssid5', mode='g', channel='1')
ap6 = net.addAccessPoint('ap6', position='200,100,0',ssid='ssid6', mode='g', channel='1')
sta1 = net.addStation('sta1', ip='10.0.0.1', position='-200,-100,0')
sta3 = net.addStation('sta3', ip='10.0.0.3', position='-100,-100,0')
sta6 = net.addStation('sta6', ip='10.0.0.6', position='200,-100,0')
c0 = net.addController('c0',controller=RemoteController, ip='127.0.0.1',port=6633)
info("*** Configuring nodes\n")
net.configureWifiNodes()
info("*** Associating Stations\n")
net.addLink(ap1,ap2)
net.addLink(ap1,ap3)
net.addLink(ap2,ap3)
net.addLink(ap2,ap5)
net.addLink(ap2,ap4)
net.addLink(ap3,ap5)
net.addLink(ap3,ap4)
net.addLink(ap4,ap5)
net.addLink(ap4,ap6)
net.addLink(ap6,ap5)
net.addLink(ap1,sta1)
net.addLink(ap3,sta3)
net.addLink(ap6,sta6)
net.plotGraph(min_x=-1000, min_y=-1000, max_x=1000, max_y=1000)
info("*** Starting network\n")
net.build()
c0.start()
ap1.start([c0])
ap2.start([c0])
ap3.start([c0])
ap4.start([c0])
ap5.start([c0])
ap6.start([c0])
info("*** Running CLI\n")
CLI(net)
info("*** Stopping network\n")
net.stop()
if __name__ == '__main__':
setLogLevel('info')
topology()