RYU 删除流表项 删除不掉 问题
来源:互联网 发布:淘宝女装模板 编辑:程序博客网 时间:2024/06/04 18:08
问题描述
在做实验的时候需要有删除流表的操作,但是在删除的时候发现并删除不掉,很是奇怪,最终在查阅了文档之后才发现貌似RYU对于FlowMod的匹配要求很高,很严格,需要指定很多参数
可以看到,上面的match部分就是in_port,eth_type,ipv4_src,ipv4_dst四个字段,所以 我原先的代码是这样的:
def del_flow(self, datapath, match): ofproto = datapath.ofproto parser = datapath.ofproto_parser mod = parser.OFPFlowMod( datapath=datapath, match=match, cookie=0, command=ofproto.OFPFC_DELETE) datapath.send_msg(mod)match = parser.OFPMatch( in_port=3, eth_type=flow_info[0], ipv4_src="10.0.0.1", ipv4_dst="10.0.0.2")self.del_flow(datapath, match)
之后在网上看到一种说是可能正确的更优雅的写法:
kwargs = dict(in_port=3, eth_type=flow_info[0], ipv4_src="10.0.0.1", ipv4_dst="10.0.0.2")match = parser.OFPMatch(**kwargs)
然而,都没有什么卵用(微笑
这个表项依旧是存在的
解决方法
http://ryu.readthedocs.io/en/latest/ofproto_v1_3_ref.html?highlight=OFPFlowMod
class ryu.ofproto.ofproto_v1_3_parser.OFPFlowMod(datapath, cookie=0, cookie_mask=0, table_id=0, command=0, idle_timeout=0, hard_timeout=0, priority=32768, buffer_id=4294967295, out_port=0, out_group=0, flags=0, match=None, instructions=None)
给出了OFPFlowMod的调用方法,仿照他的写法,改成了如下:
ofp = datapath.ofproto ofp_parser = datapath.ofproto_parser cookie = cookie_mask = 0 table_id = 0 idle_timeout = 15 hard_timeout = 60 priority = 1 buffer_id = ofp.OFP_NO_BUFFER match = ofp_parser.OFPMatch(in_port=3, eth_type=flow_info[0], ipv4_src="10.0.0.1", ipv4_dst="10.0.0.2") actions = [] inst = [] req = ofp_parser.OFPFlowMod(datapath, cookie, cookie_mask, table_id, ofp.OFPFC_DELETE, idle_timeout, hard_timeout, priority, buffer_id, 2, ofp.OFPG_ANY, ofp.OFPFF_SEND_FLOW_REM, match, inst) datapath.send_msg(req)
可以发现,参数的要求是很高的
试着删除一些参数,发现最简也就只能删掉inst字段,写成:
req = ofp_parser.OFPFlowMod(datapath, cookie, cookie_mask, table_id, ofp.OFPFC_DELETE, idle_timeout, hard_timeout, priority, buffer_id, 2, ofp.OFPG_ANY, ofp.OFPFF_SEND_FLOW_REM, match)
ps,其中的2是流表的输出端口
总结
虽然有时候自己感觉匹配的已经很清楚了,还是太主观了,多看文档,照着文档弄总没错
阅读全文
1 0
- RYU 删除流表项 删除不掉 问题
- 删除GOldengate的时候删除不掉
- oracle删除表空间删除不掉
- 解决桌面IE图标删除不掉问题
- 解决用userdel删除不掉用户的问题
- 关于SharedPreferences文件删除不掉的问题
- 用CopyFileEx拷贝文件之后,再调用DeleteFile删除文件删除不掉的问题
- 为什么文件夹删除不掉?
- 文件夹删除不掉怎么办?
- sqlserver卸载问题--删除不干净!
- 通讯录操作问题--删除联系人不彻底
- 应用文件夹删除不彻底问题
- 如何删除百度安全卫士等删除不掉的软件
- List集合删除元素的时候删除不掉
- List集合删除元素的时候删除不掉
- 删除问题
- 创建一个删除不掉的文件夹
- 打印机删除不掉的解决方法
- java方法调用(1)
- redux学习总结
- CCF认证201703-3 Markdown
- HDU 5924-Mr. Frog’s Problem
- ARM平台裸板GDB调试
- RYU 删除流表项 删除不掉 问题
- Tomcat 8熵池阻塞变慢详解
- Eclipse for j2e 报错no opencv_* in java.library.path的解决方法
- JS技术(2)--表单验证
- 正阅读微信小说分销系统-视频教程-4.数据统计 包含图文教程
- log4j
- Arduino/Microduino与OneNet平台及web服务器端的交互
- Java多线程同步的五种方法
- js正则表达式在(replace()方法)