#!/usr/bin/env python
"""
10Aps connected to 7APs
"""
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
import time
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 APs\n")
ap1 = net.addAccessPoint('ap1', ssid='ssid1', wlans=2, position='-45,40,0', mac='00:00:00:00:11:11')
ap3 = net.addAccessPoint('ap3', ssid='ssid3', wlans=2, position='-40,0,0', mac='00:00:00:00:33:33')
ap4 = net.addAccessPoint('ap4', ssid='ssid4', wlans=2, position='-1,8,0', mac='00:00:00:00:44:44')
ap5 = net.addAccessPoint('ap5', ssid='ssid5', wlans=2, position='37,0,0', mac='00:00:00:00:55:55')
ap6 = net.addAccessPoint('ap6', ssid='ssid6', wlans=2, position='77,0,0', mac='00:00:00:00:66:66')
info("*** creating stations\n")
sta1 = net.
addStation(
'sta1',
position='-67,70,0',
ip='192.168.5.11/24',
mac='00:00:00:00:00:11')
sta2 = net.
addStation(
'sta2',
position='14,74,0',
ip='192.168.5.22/24',
mac='00:00:00:00:00:22')
sta3 = net.
addStation(
'sta3',
position='-54,-21,0',
ip='192.168.5.33/24',
mac='00:00:00:00:00:33')
sta6 = net.
addStation(
'sta6',
position='100,0,0',
ip='192.168.5.66/24',
mac='00:00:00:00:00:66')
info("*** adding controller\n")
c0 = net.addController('c0',controller=RemoteController, ip='192.168.0.214',port=6633)
net.setPropagationModel(model="logDistance", exp=4.5)
info("*** Configuring nodes\n")
net.configureWifiNodes()
info("*** Associating Stations\n")
#Optional links
info("*** adding links\n")
net.addLink(ap1, intf='ap1-wlan2', cls=mesh, ssid='mesh-ssid')
net.addLink(ap3, intf='ap3-wlan2', cls=mesh, ssid='mesh-ssid')
net.addLink(ap4, intf='ap4-wlan2', cls=mesh, ssid='mesh-ssid')
net.addLink(ap5, intf='ap5-wlan2', cls=mesh, ssid='mesh-ssid')
net.addLink(ap6, intf='ap6-wlan2', cls=mesh, ssid='mesh-ssid')
net.addLink(sta1, ap1)
net.addLink(sta3, ap3)
net.addLink(sta6, ap6)
info("*** plotting\n")
net.plotGraph(min_x=-100, min_y=-150, max_x=200, max_y=100)
info("*** Starting network\n")
net.build()
c0.start()
ap1.start([c0])
ap3.start([c0])
ap4.start([c0])
ap5.start([c0])
ap6.start([c0])
ap1.cmd("ifconfig ap1-wlan1 192.168.5.111 netmask 255.255.255.0")
ap3.cmd("ifconfig ap3-wlan1 192.168.5.133 netmask 255.255.255.0")
ap4.cmd("ifconfig ap4-wlan1 192.168.5.144 netmask 255.255.255.0")
ap5.cmd("ifconfig ap5-wlan1 192.168.5.155 netmask 255.255.255.0")
ap6.cmd("ifconfig ap6-wlan1 192.168.5.166 netmask 255.255.255.0")
time.sleep(5)
info("*** Running CLI\n")
CLI(net)
info("*** Stopping network\n")
net.stop()
if __name__ == '__main__':
setLogLevel('info')
topology()