POX组件听取事件

时间:2015-01-21 19:18:20

标签: listener mininet pox

我想发现使用POX组件由mininet模拟的网络拓扑。我发现我需要编写自己的组件,这是听 LinkEvents 。类似的东西:

someObject.addListenerByName("LinkEvent", someFunction)

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

如果我执行

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

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

AttributeError: 'openflow_discovery' not registered

2 个答案:

答案 0 :(得分:2)

使用名为" gephi"的pox模块更容易。要做到这一点,它应该在misc目录下,只需将此方法添加到" gephi_topo.py"在"类GephiTopo":

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

然后在痘控制器的任何地方使用它,如:

topo=gephi_topo.GephiTopo.get_gephi_topology(core.GephiTopo)
switches= topo[0]
links=topo[1]
hosts=topo[2]

答案 1 :(得分:0)

通过在addListenerByName内部调用launch()来解决此问题。