如何处理流量移除事件
How to handle flow removal event
我想知道在通过 hard_timeout 后开关何时删除任何流规则。我知道 ofp_flow_mod
有一个属性 flags
,我可以在其中测试 OFPFF_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过期后不会触发此方法。我不知道为什么。任何人都可以建议如何修复它。
坦克你
如果您确定交换机上安装了流,最好的方法是添加拓扑模块并监听 FlowRemoved 事件混合
在您的主 class 中添加类似
的内容
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
我想知道在通过 hard_timeout 后开关何时删除任何流规则。我知道 ofp_flow_mod
有一个属性 flags
,我可以在其中测试 OFPFF_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过期后不会触发此方法。我不知道为什么。任何人都可以建议如何修复它。
坦克你
如果您确定交换机上安装了流,最好的方法是添加拓扑模块并监听 FlowRemoved 事件混合
在您的主 class 中添加类似
的内容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