如何在mininet中正确设置自定义带宽



我试图将带宽设置为1.7MBps,但它不起作用。我看到使用了参数--link=tc,bw=1.7,所以我这样做了,但它仍然不起作用。当我在mininet控制台中使用命令来查看带宽时,它太大了,但我发现它还可以,但工作不正常。我正在根据端口统计数据计算带宽,到目前为止我得到的最高带宽是0.4MBps还添加了CPU到我的虚拟机,没有帮助。我做错了什么
流量是通过客户端从服务器下载数据来生成的。(我也在使用RYU的开关:simple_switch_stp_13和控制器ofctl_rest。(

#IMPORTS#
limit=1.7
OVSSwitch14 = partial(OVSSwitch, protocols='OpenFlow13')
class SingleSwitchTopo(Topo):
def build(self):
origin = self.addHost('origin', ip='10.11.0.1')
se1 = self.addHost('se1', ip='10.11.0.2')
se2 = self.addHost('se2', ip='10.11.0.3')
#adding cients
client1 = self.addHost('client1', ip='10.11.0.11')
client2 = self.addHost('client2', ip='10.11.0.12')
client3 = self.addHost('client3', ip='10.11.0.13')
client4 = self.addHost('client4', ip='10.11.0.14')
client5 = self.addHost('client5', ip='10.11.0.15')
client6 = self.addHost('client6', ip='10.11.0.16')
#adding switches
s1 = self.addSwitch('s1')
s2 = self.addSwitch('s2')
s3 = self.addSwitch('s3')
s4 = self.addSwitch('s4')
s5 = self.addSwitch('s5')
s6 = self.addSwitch('s6')
#adding links
self.addLink(s1, se1, cls=TCLink, bw=limit)
self.addLink(s1, s3, cls=TCLink, bw=limit)
self.addLink(s2, client1, cls=TCLink,bw=limit)
self.addLink(s2, origin, cls=TCLink,bw=limit)
self.addLink(s2, s4, cls=TCLink, bw=limit)
self.addLink(s3, client2, cls=TCLink, bw=limit)
self.addLink(s3, s4, cls=TCLink, bw=limit)
self.addLink(s4, client3, cls=TCLink, bw=limit)
self.addLink(s4, s5, cls=TCLink, bw=limit)
self.addLink(s4, s6, cls=TCLink, bw=limit)
self.addLink(s5, se2, cls=TCLink, bw=limit)
self.addLink(s2, s3, cls=TCLink, bw=limit)
self.addLink(s6, client4, cls=TCLink, bw=limit)
self.addLink(s6, client5, cls=TCLink, bw=limit)
self.addLink(s3, client6, cls=TCLink, bw=limit)
mgsw = self.addSwitch('s66766')  # DPID used for the Management switch
def setup():
"Start Network"
topo = SingleSwitchTopo()
OVSSwitch14 = partial(OVSSwitch, protocols='OpenFlow13')
net = Mininet(topo=topo, ipBase='10.11.0.0/24', switch=OVSSwitch14, controller=RemoteController,autoSetMacs=True, xterms=True , link=TCLink)
for h in net.hosts:
info('Disabling IPV6 for ' + str(h) + 'n')
h.cmd("sysctl -w net.ipv6.conf.all.disable_ipv6=1")
h.cmd("sysctl -w net.ipv6.conf.default.disable_ipv6=1")
h.cmd("sysctl -w net.ipv6.conf.lo.disable_ipv6=1")
h.cmd("echo ''")

net.start()
net.pingAll()
net.pingAll()   
CLI(net)
if __name__ == '__main__':
setLogLevel('info')
setup()

所以这个错误有点愚蠢。在mininet中设置带宽时,您将其设置为Mbit/s,而不是Mbytes/s。因此,我不得不将MB/s转换为MB/s,在我的情况下是13.6Mb=1.7 MB

最新更新