3

我想发现 mininet 使用 POX 组件模拟的网络拓扑。我发现我需要编写自己的组件,该组件正在侦听LinkEvents。就像是:

someObject.addListenerByName("LinkEvent", someFunction)

但我实际上不知道我应该在什么样的对象上执行这个。

如果我执行它

core.openflow_discovery.addListenerByName("LinkEvent", someFunction)

openflow.discovery模块中所述,它会引发以下错误:

AttributeError: 'openflow_discovery' not registered
4

2 回答 2

2

使用名为“gephi”的pox模块更容易做到这一点,它应该在misc目录下,只需将此方法添加到“class GephiTopo”中的“gephi_topo.py”即可:

 def get_gephi_topology (self):
    switchesAndLinksAndHosts=[self.switches,self.links, self.hosts]
    return switchesAndLinksAndHosts

然后在您的 pox 控制器中的任何位置使用它,例如:

topo=gephi_topo.GephiTopo.get_gephi_topology(core.GephiTopo)
switches= topo[0]
links=topo[1]
hosts=topo[2]
于 2015-10-11T17:40:59.497 回答
1

addListenerByName通过从内部调用来修复它launch()

于 2019-04-18T13:50:19.853 回答