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