from mininet.node import Controller, RemoteController
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 mn_wifi.wmediumdConnector import interference
def topology():
"Create a network."
net = Mininet_wifi(link=wmediumd, wmediumd_mode=interference)
info("*** Creating nodes\n")
sta1 = net.addStation('sta1', mac='00:00:00:00:00:11', position='1,1,0')
sta2 = net.addStation('sta2', mac='00:00:00:00:00:12', position='31,11,0')
sta3 = net.addStation('sta3', mac='00:00:00:00:00:13', position='1,31,0')
sta4 = net.addStation('sta4', mac='00:00:00:00:00:14', position='31,31,0')
sta5 = net.addStation('sta5', mac='00:00:00:00:00:15', position='11,21,0')
sta6 = net.addStation('sta6', mac='00:00:00:00:00:16', position='21,21,0')
sta7 = net.addStation('sta7', mac='00:00:00:00:00:17', position='1,11,0')
sta8 = net.addStation('sta8', mac='00:00:00:00:00:18', position='31,11,0')
sta9 = net.addStation('sta9', mac='00:00:00:00:00:19', position='11,31,0')
sta10 = net.addStation('sta10', mac='00:00:00:00:00:1A', position='21,31,0')
ap1 = net.addAccessPoint('ap1', wlans=2, ssid='ssid1', position='10,10,0')
ap2 = net.addAccessPoint('ap2', wlans=2, ssid='ssid2', position='30,10,0')
ap3 = net.addAccessPoint('ap3', wlans=2, ssid='ssid3', position='20,20,0')
ap4 = net.addAccessPoint('ap4', wlans=2, ssid='ssid4', position='10,30,0')
ap5 = net.addAccessPoint('ap5', wlans=2, ssid='ssid5', position='30,30,0')
c0 = net.addController(name='c0', controller=RemoteController, ip='127.0.0.1', port=6653)
info("*** Configuring wifi nodes\n")
net.configureWifiNodes()
info("*** Associating Stations\n")
net.addLink(sta1, ap1)
net.addLink(sta2, ap1)
net.addLink(sta3, ap2)
net.addLink(sta4, ap2)
net.addLink(sta5, ap3)
net.addLink(sta6, ap3)
net.addLink(sta7, ap4)
net.addLink(sta8, ap4)
net.addLink(sta9, ap5)
net.addLink(sta10, ap5)
net.addLink(ap1, intf='ap1-wlan2', cls=mesh, ssid='mesh-ssid', channel=5)
net.addLink(ap2, intf='ap2-wlan2', cls=mesh, ssid='mesh-ssid', channel=5)
net.addLink(ap3, intf='ap3-wlan2', cls=mesh, ssid='mesh-ssid', channel=5)
net.addLink(ap4, intf='ap4-wlan2', cls=mesh, ssid='mesh-ssid', channel=5)
net.addLink(ap5, intf='ap5-wlan2', cls=mesh, ssid='mesh-ssid', channel=5)
info("*** Starting network\n")
net.build()
c0.start()
ap1.start([c0])
ap2.start([c0])
ap3.start([c0])
ap4.start([c0])
ap5.start([c0])
info("*** Running CLI\n")
CLI(net)
info("*** Stopping network\n")
net.stop()
if __name__ == '__main__':
setLogLevel('info')
topology()