You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:44:44