lxy123go 2015-04-20 04:52 采纳率: 0%
浏览 2914

用python在mininet自定义了一个topo但得不到想要的结果

这是代码.做的是一个胖树结构,
我运行之后没有报错但是得不到任何的结果,就像什么都没建立起

from mininet.topo import Topo

class FatTreeTopo( Topo ):

  CoreSwitchList = []
  AggSwitchList = []
  EdgeSwitchList = []
  HostList = []

  def __init__(self, k):
      "Create fat-tree topo"
      self.pod = k
      self.iCoreLayerSwitch = (k/2)**2
      self.iAggLayerSwitch = k*k/2
      self.iEdgeLayerSwitch = k*k/2
      self.iHost = k*k*k/4

      Topo.__init__(self)

  def createTopo(self):
      self.createCoreLayerSwitch(self.iCoreLayerSwitch)
      self.createAggLayerSwitch(self.iAggLayerSwitch)
      self.createEdgeLayerSwitch(self.iEdgeLayerSwitch)
      self.createHost(self.iHost)

  def addSwitch(self, counter, level, switch_list):
      for x in xrange(1, counter+1):
          PREFIX = str(level) + "00"
          if x >= int(10):
             PREFIX = str(level) + "0"
             switch_list.append(self.addSwitch('s' + PREFIX + str(x)))

  def createCoreLayerSwitch(self, Counter):
      self.addSwitch(Counter, 1, self.CoreSwitchList)

  def createAggLayerSwitch(self, Counter):
      self.addSwitch(Counter, 2, self.AggSwitchList)

  def createEdgeLayerSwitch(self,Counter):
      self.addSwitch(Counter, 3, self.EdgeSwitchList)

  def createHost(self, Counter):
      for x in xrange(1, Counter+1):
          PREFIX = "h00"
          if x >= int(10):
             PREFIX = "h0"
          elif x >= int(100):
             PREFIX = "h"
          self.HostList.append(self.addHost(PREFIX + str(x)))

  def createLink(self):
      end = self.pod/2
      for x in xrange(0, self.iAggLayerSwitch, end):
          for i in xrange(0, end):
              for j in xrange(0, end):
                  self.addLink(
                     self.CoreSwitchList[i*end+j],
                     self.AggSwitchList[x+i])

      for x in xrange(0, self.iAggLayerSwutch, end):
          for i in xrange(0, end):
              for j in xrange(0, end):
                  self.addLink(
                  self.AggSwitchList[x+i], self.EdgeSwitchList[x+j])

      for x in xrange(0, self.iEdgeLayerSwitch):
          for i in xrange(0, end):
              self.addLink(
                 self.EdgeSwitchList[x], self.HostList[end * x + i]) 

topos = { 'fattree': FatTreeTopo }

  • 写回答

2条回答 默认 最新

  • del2z 2015-04-28 13:57
    关注

    我没有用过mininet包,不过看你的代码,你定义的FatTreeTopo没有实例化。
    试试
    fattree = FatTreeTopo()
    topos = {"fattree": fattree}
    查询topos["fattree"]应该会有结果可以看。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。