0

我想知道在通过 hard_timeout 后交换机何时删除任何流规则。我知道有一个可以测试 ofp_flow_mod的属性。我在控制器中做了以下操作:flagsOFPFF_SEND_FLOW_REM

def handle_flowRemoval(self, event):
    msg = event.parsed
    if msg.flags == of.OFPFF_SEND_FLOW_REM:
        print ("The switch %s has raised the removal event!" % event.dpid)

实际上,hard_timeout 过期后不会触发这个方法。我不知道为什么。任何人都可以建议如何解决它。

保护你

4

1 回答 1

1

如果您确定交换机上安装了流,最好的方法是添加拓扑模块并监听 FlowRemoved 事件混合

在你的主类中添加类似

core.openflow.addListenerByName("FlowRemoved", self._handle_flow_removal)

然后在某个地方阅读事件

def _handle_flow_removal (self, event):
    """
    handler flow removed event here
    """
    print event.__dict__() # to get available info

FlowRemoved 事件混合位于第 172 行的 POX topology.py 模块中 https://github.com/noxrepo/pox/blob/carp/pox/openflow/topology.py

于 2016-04-11T09:20:55.283 回答