运行Mininet-wifi示例代码时出现tx power为负的错误求助
解决Mininet-WiFi中"tx power is negative! (-15)"错误
这个错误我之前也碰到过,核心原因是Mininet-WiFi会根据你设置的range参数自动计算AP的发射功率(txpower),但当range值不符合默认传播模型的计算逻辑时,就会算出负值。下面是具体的解决方法:
解决方案:显式指定AP的发射功率
直接在添加AP的时候手动设置txpower参数,覆盖自动计算的值,就能避免这个问题。修改你的AP定义代码如下:
ap1 = net.addAccessPoint('ap1', ssid='ssid-ap1', mode='g', channel='1', position='25,50,0', range='35', txpower=20) ap2 = net.addAccessPoint('ap2', ssid='ssid-ap2', mode='g', channel='6', position='75,50,0', range='35', txpower=20)
完整修改后的代码
from mininet.net import Mininet from mininet.node import Controller,OVSKernelAP from mininet.link import TCLink from mininet.cli import CLI from mininet.log import setLogLevel def topology(): net = Mininet(controller=Controller, link=TCLink, accessPoint=OVSKernelAP) print "***Creating nodes" # 显式添加txpower参数,避免自动计算出负值 ap1 = net.addAccessPoint('ap1', ssid='ssid-ap1', mode='g', channel='1', position='25,50,0', range='35', txpower=20) ap2 = net.addAccessPoint('ap2', ssid='ssid-ap2', mode='g', channel='6', position='75,50,0', range='35', txpower=20) sta1 = net.addStation('sta1', mac='00:00:00:00:00:01', ip='10.0.0.1',position='50,50,0') sta2 = net.addStation('sta2', mac='00:00:00:00:00:02', ip='10.0.0.2',position='40,50,0') c1 = net.addController('c1', controller=Controller) #print "*** Enabling assciation control (AP)" #net.associationControl('ssf') print "*** Configuring wifi nodes" net.configureWifiNodes() print "Creating Links" net.addLink(ap1, ap2) net.addLink(ap1, sta1) net.addLink(ap2, sta2) print "Starting Network" net.build() c1.start() ap1.start([c1]) ap2.start([c1]) """Plot Graph""" net.plotGraph(max_x=100, max_y=100) print "****Running CLI" CLI(net) print "****Stopping Network" net.stop() if __name__ == '__main__': setLogLevel('info') topology()
额外说明
如果不想手动设置txpower,你也可以:
- 调整
range参数的数值,比如适当增大range,让系统计算出的txpower为正 - 显式指定传播模型,比如使用
propagationModel参数设置为更适合你场景的模型(比如logDistance),不过手动设置txpower是最直接有效的方法。
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

