def closeMininetWiFi(self): "Close Mininet-WiFi" self.plot.closePlot() module.stop() # Stopping WiFi Module if self.useWmediumd: WmediumdServerConn.disconnect() WmediumdStarter.stop()
def configureWmediumd(self, stations, accessPoints): """ Updates values for frequency and channel :param stations: list of stations :param accessPoints: list of access points """ intfrefs = [] links = [] positions = [] txpowers = [] cars = [] for node in stations: if 'carsta' in node.params: cars.append(node.params['carsta']) nodes = stations + accessPoints + cars for node in nodes: node.wmediumdIface = DynamicWmediumdIntfRef(node) intfrefs.append(node.wmediumdIface) if self.enable_interference: mode = WmediumdConstants.WMEDIUMD_MODE_INTERFERENCE for node in nodes: if 'position' not in node.params: posX = 0 posY = 0 posZ = 0 else: posX = node.params['position'][0] posY = node.params['position'][1] posZ = node.params['position'][2] node.lastpos = [0, 0, 0] positions.append( WmediumdPosition(node.wmediumdIface, [posX, posY, posZ])) txpowers.append( WmediumdTXPower(node.wmediumdIface, float(node.params['txpower'][0]))) else: mode = WmediumdConstants.WMEDIUMD_MODE_SNR for node in self.wlinks: links.append( WmediumdSNRLink(node[0].wmediumdIface, node[1].wmediumdIface, node[0].params['snr'][0])) links.append( WmediumdSNRLink(node[1].wmediumdIface, node[0].wmediumdIface, node[0].params['snr'][0])) WmediumdStarter.initialize(intfrefs, links, mode=mode, positions=positions, enable_interference=self.enable_interference, \ auto_add_links=False, txpowers=txpowers, with_server=True) WmediumdStarter.start()
def closeMininetWiFi(self): "Close Mininet-WiFi" mobility.continuePlot = 'exit()' mobility.continueParams = 'exit()' sleep(2) self.plot.closePlot() module.stop() # Stopping WiFi Module if self.useWmediumd: WmediumdServerConn.disconnect() WmediumdStarter.stop()
def topology(): """Create a network. sta1 <--> sta2 <--> sta3""" print "*** Network creation" net = Mininet() print "*** Creating nodes" sta1 = net.addStation('sta1') sta2 = net.addStation('sta2') sta3 = net.addStation('sta3') print "*** Configure wmediumd" # This should be done right after the station has been initialized sta1wlan0 = DynamicWmediumdIntfRef(sta1) sta2wlan0 = DynamicWmediumdIntfRef(sta2) sta3wlan0 = DynamicWmediumdIntfRef(sta3) intfrefs = [sta1wlan0, sta2wlan0, sta3wlan0] links = [ WmediumdERRPROBLink(sta1wlan0, sta2wlan0, 0.2), WmediumdERRPROBLink(sta2wlan0, sta1wlan0, 0.2), WmediumdERRPROBLink(sta2wlan0, sta3wlan0, 0.1), WmediumdERRPROBLink(sta3wlan0, sta2wlan0, 0.1) ] WmediumdStarter.initialize(intfrefs, links, use_errprob=True) print "*** Configuring wifi nodes" net.configureWifiNodes() print "*** Start wmediumd" WmediumdStarter.start() print "*** Creating links" net.addHoc(sta1, ssid='adNet') net.addHoc(sta2, ssid='adNet') net.addHoc(sta3, ssid='adNet') print "*** Starting network" net.start() print "*** Running CLI" CLI(net) print "*** Stopping wmediumd" WmediumdStarter.stop() print "*** Stopping network" net.stop()
def topology(): """Create a network. sta1 <--> sta2 <--> sta3""" print "*** Network creation" net = Mininet() print "*** Configure wmediumd" sta1wlan0 = WmediumdIntfRef('sta1', 'sta1-wlan0', '02:00:00:00:00:00') sta2wlan0 = WmediumdIntfRef('sta2', 'sta2-wlan0', '02:00:00:00:01:00') sta3wlan0 = WmediumdIntfRef('sta3', 'sta3-wlan0', '02:00:00:00:02:00') intfrefs = [sta1wlan0, sta2wlan0, sta3wlan0] links = [ WmediumdSNRLink(sta1wlan0, sta2wlan0, 15), WmediumdSNRLink(sta2wlan0, sta1wlan0, 15), WmediumdSNRLink(sta2wlan0, sta3wlan0, 15), WmediumdSNRLink(sta3wlan0, sta2wlan0, 15) ] WmediumdStarter.initialize(intfrefs, links) print "*** Creating nodes" sta1 = net.addStation('sta1') sta2 = net.addStation('sta2') sta3 = net.addStation('sta3') print "*** Configuring wifi nodes" net.configureWifiNodes() print "*** Start wmediumd" WmediumdStarter.start() print "*** Creating links" net.addHoc(sta1, ssid='adNet') net.addHoc(sta2, ssid='adNet') net.addHoc(sta3, ssid='adNet') print "*** Starting network" net.start() print "*** Running CLI" CLI(net) print "*** Stopping wmediumd" WmediumdStarter.stop() print "*** Stopping network" net.stop()
def topology(): """Create a network. sta1 <--> sta2 <--> sta3""" print "*** Network creation" net = Mininet() print "*** Creating nodes" sta1 = net.addStation('sta1', range=50, position='10,10,0') sta2 = net.addStation('sta2', range=50, position='20,10,0') sta3 = net.addStation('sta3', range=50, position='30,10,0') print "*** Configure wmediumd" # This should be done right after the station has been initialized sta1.wmediumdIface = DynamicWmediumdIntfRef(sta1) sta2.wmediumdIface = DynamicWmediumdIntfRef(sta2) sta3.wmediumdIface = DynamicWmediumdIntfRef(sta3) intfrefs = [sta1.wmediumdIface, sta2.wmediumdIface, sta3.wmediumdIface] links = [ WmediumdSNRLink(sta1.wmediumdIface, sta2.wmediumdIface, 15), WmediumdSNRLink(sta2.wmediumdIface, sta1.wmediumdIface, 15), WmediumdSNRLink(sta2.wmediumdIface, sta3.wmediumdIface, 15), WmediumdSNRLink(sta3.wmediumdIface, sta2.wmediumdIface, 15) ] WmediumdStarter.initialize(intfrefs, links, with_server=True) print "*** Configuring wifi nodes" net.configureWifiNodes() print "*** Start wmediumd" WmediumdStarter.start() print "*** Plotting graph ***" net.plotGraph(max_x=200, max_y=200) print "*** Enabling Mesh Routing ***" net.meshRouting('custom') print "*** Creating links" net.addMesh(sta1, ssid='adNet') net.addMesh(sta2, ssid='adNet') net.addMesh(sta3, ssid='adNet') print "*** Starting network" net.start() print "\n\n\n" print "*** Pinging sta2" sta1.cmdPrint('ping -c 1 10.0.0.2') print "*** Update wmediumd" WmediumdServerConn.connect() # Required when the position of the nodes are previously defined. Useful to set channel params. net.autoAssociation() CLI(net) print "*** Stopping network" net.stop() print "*** Stopping wmediumd" WmediumdServerConn.disconnect() WmediumdStarter.stop()
def kill_wmediumd(cls): "Kill wmediumd" info("\n*** Killing wmediumd") WmediumdServerConn.disconnect() WmediumdStarter.stop() sleep(0.1)
def configureWmediumd(cls, mininet): """ Updates values for frequency and channel """ from mininet.node import Car intfrefs = [] links = [] positions = [] txpowers = [] cars = [] cls.configureWiFiDirect = mininet.configureWiFiDirect cls.configure4addr = mininet.configure4addr cls.enable_error_prob = mininet.enable_error_prob cls.enable_interference = mininet.enable_interference cls.enable_spec_prob_link = mininet.enable_spec_prob_link for node in mininet.stations: if 'carsta' in node.params: cars.append(node.params['carsta']) nodes = mininet.stations + mininet.aps + cars for node in nodes: node.wmIface = [] if isinstance(node, Car): wlans = 1 elif '_4addr' in node.params and node.params['_4addr'] == 'ap': wlans = 1 else: wlans = len(node.params['wlan']) for wlan in range(0, wlans): node.wmIface.append(wlan) node.wmIface[wlan] = DynamicWmediumdIntfRef(node, intf=wlan) intfrefs.append(node.wmIface[wlan]) if cls.enable_interference: mode = WmediumdConstants.WMEDIUMD_MODE_INTERFERENCE for node in nodes: if 'position' not in node.params: posX = 0 posY = 0 posZ = 0 else: posX = node.params['position'][0] posY = node.params['position'][1] posZ = node.params['position'][2] node.lastpos = [posX, posY, posZ] if isinstance(node, Car): wlans = 1 elif '_4addr' in node.params and node.params['_4addr'] == 'ap': wlans = 1 else: wlans = len(node.params['wlan']) for wlan in range(0, wlans): positions.append( WmediumdPosition(node.wmIface[wlan], [posX, posY, posZ])) txpowers.append( WmediumdTXPower(node.wmIface[wlan], float(node.params['txpower'][wlan]))) elif cls.enable_spec_prob_link: mode = WmediumdConstants.WMEDIUMD_MODE_SPECPROB elif cls.enable_error_prob: mode = WmediumdConstants.WMEDIUMD_MODE_ERRPROB for node in cls.wlinks: links.append( WmediumdERRPROBLink(node[0].wmIface[0], node[1].wmIface[0], node[2])) links.append( WmediumdERRPROBLink(node[1].wmIface[0], node[0].wmIface[0], node[2])) else: mode = WmediumdConstants.WMEDIUMD_MODE_SNR for node in cls.wlinks: links.append( WmediumdSNRLink(node[0].wmIface[0], node[1].wmIface[0], node[0].params['rssi'][0] - (-91))) links.append( WmediumdSNRLink(node[1].wmIface[0], node[0].wmIface[0], node[0].params['rssi'][0] - (-91))) WmediumdStarter.initialize(intfrefs, links, mode=mode, positions=positions, enable_interference=cls.enable_interference, auto_add_links=False, txpowers=txpowers, with_server=True) WmediumdStarter.start(mininet, propagationModel)
def configureWmediumd(self, stations, accessPoints): """ Updates values for frequency and channel :param stations: list of stations :param accessPoints: list of access points """ intfrefs = [] links = [] positions = [] txpowers = [] cars = [] for node in stations: if 'carsta' in node.params: cars.append(node.params['carsta']) nodes = stations + accessPoints + cars for node in nodes: node.wmIface = [] if node.type == 'vehicle': wlans = 1 else: wlans = len(node.params['wlan']) for wlan in range(0, wlans): node.wmIface.append(wlan) node.wmIface[wlan] = DynamicWmediumdIntfRef(node, intf=wlan) intfrefs.append(node.wmIface[wlan]) if self.enable_interference: mode = WmediumdConstants.WMEDIUMD_MODE_INTERFERENCE for node in nodes: if 'position' not in node.params: posX = 0 posY = 0 posZ = 0 else: posX = node.params['position'][0] posY = node.params['position'][1] posZ = node.params['position'][2] node.lastpos = [0, 0, 0] if hasattr(node, 'type') and node.type == 'vehicle': wlans = 1 else: wlans = len(node.params['wlan']) for wlan in range(0, wlans): positions.append( WmediumdPosition(node.wmIface[wlan], [posX, posY, posZ])) txpowers.append( WmediumdTXPower(node.wmIface[wlan], float(node.params['txpower'][wlan]))) elif self.enable_spec_prob_link: mode = WmediumdConstants.WMEDIUMD_MODE_SPECPROB elif self.enable_error_prob: mode = WmediumdConstants.WMEDIUMD_MODE_ERRPROB else: mode = WmediumdConstants.WMEDIUMD_MODE_SNR WmediumdStarter.initialize(intfrefs, links, mode=mode, positions=positions, enable_interference=self.enable_interference, \ auto_add_links=False, txpowers=txpowers, with_server=True) WmediumdStarter.start()
def topology(): """Create a network. sta1 <--> sta2 <--> sta3""" print "*** Network creation" net = Mininet() print "*** Creating nodes" sta1 = net.addStation('sta1', range=200) sta2 = net.addStation('sta2', range=200) sta3 = net.addStation('sta3', range=200) print "*** Configure wmediumd" # This should be done right after the station has been initialized sta1.wmediumdIface = DynamicWmediumdIntfRef(sta1) sta2.wmediumdIface = DynamicWmediumdIntfRef(sta2) sta3.wmediumdIface = DynamicWmediumdIntfRef(sta3) intfrefs = [sta1.wmediumdIface, sta2.wmediumdIface, sta3.wmediumdIface] links = [ WmediumdSNRLink(sta1.wmediumdIface, sta2.wmediumdIface, 15), WmediumdSNRLink(sta2.wmediumdIface, sta1.wmediumdIface, 15), WmediumdSNRLink(sta2.wmediumdIface, sta3.wmediumdIface, 15), WmediumdSNRLink(sta3.wmediumdIface, sta2.wmediumdIface, 15)] WmediumdStarter.initialize(intfrefs, links, with_server=True) print "*** Configuring wifi nodes" net.configureWifiNodes() print "*** Start wmediumd" WmediumdStarter.start() net.plotGraph(max_x=240, max_y=240) net.meshRouting('custom') net.seed(20) print "*** Creating links" net.addMesh(sta1, ssid='adNet') net.addMesh(sta2, ssid='adNet') net.addMesh(sta3, ssid='adNet') print "*** Starting network" net.start() print "\n\n\n" print "*** Pinging sta2" sta1.cmdPrint('ping -c 1 10.0.0.2') print "*** Setting up the mobility model" net.startMobility(startTime=0, model='RandomDirection', max_x=220, max_y=220, min_v=0.1, max_v=0.2) print "*** Update wmediumd" WmediumdServerConn.connect() CLI(net) print "*** Stopping network" net.stop() print "*** Stopping wmediumd" WmediumdServerConn.disconnect() WmediumdStarter.stop()