- 博客(8)
- 收藏
- 关注
原创 fattree拓扑:全联通转发表生成代码
最近做实验需要fattree-k4,fattree-k6以及k值更大的拓扑,k4的转发表尚可手写,可是k值增大,流表的数量可是显著增加,手写肯定不太行,所以根据fattree的拓扑规律写一个自动生成转发表的程序,这样也可以通过这个转发表下发流表啥的就很方便了。 拓扑回顾 fattree-k4 core层交换机数量: 4 agg层交换机数量:8 edge层交换机数量:8 host数量:16 fattree-k core: (k/2)^2 agg: (k^2)/2 = core * 2 edge = a.
2020-12-05 14:08:10
926
原创 ovs 流表匹配顺序实验
最近在mininet搭Internet2拓扑,并测试连通性。 因为转发规则需要遵守最长前缀匹配,因此要求数据平面也按照最长前缀匹配进行转发。但是在下发流表之后,使用 ovs-ofctl dump-flow 命令发现流表项的顺序和 下发顺序或前缀长度都无关。 在网上找了各位大佬的讲解,主要是这篇博文: http://vinllen.com/ovs-2-3-datapatchnei-he-liu-biao-pi-pei-guo-cheng/ 这位大佬讲得很清楚,流表12个匹配域,match指定的匹配域越多,匹配
2020-11-09 15:57:34
2352
1
原创 mininet-ovs转发行为与流表不对应
摘要 mininet搭建拓扑,floodlight API下发流表后,进行转发测试。 发现ovs转发行为与流表显示的不一致,而流表对应的表项n_packets字段正确累加,正确端口抓不到包,而错误的实际转发端口能抓到IP包。 【ovs迷惑转发行为探究】 问题描述 mininet搭建Internet2拓扑,floodlight控制器 ovs s13的流表: 可以看到转发的端口为33,而进行几次测试后,该两条流表项n_packets字段正确累加 打印内核空间的转发行为发现IP包被转发到了21端口 分别在s3
2020-11-05 16:33:48
347
1
原创 mininet-解决host之间ping不通的问题
mininet-解决host之间ping不通的问题 问题描述 在mininet中搭建了一个fattree-k4拓扑,通过ovs-ofctl下发流表后,使用 mininet > pingall 测试连通性,发现不连通: s13为h1和h2之间的ovs,查看其流表 ovs-ofctl -O OpenFlow13 dump-flows s13 查看流表: 流表正确,为何还是不连通? 查看h1的arp表: mininet> h1 arp -nv h1的arp表不完整(h2对应的一栏是inco
2020-10-28 20:19:16
7452
2
原创 ovs-ofctl下发流表测试实验
mininet拓扑 这里用的自动创建的最简单的拓扑(h1-s1-h2) sudo mn 既转发又丢弃可以吗?会产生冲突吗? sudo ovs-ofctl add-flow s1 in_port=2,actions=output:1,drop 结果: 好吧,不行。drop不允许和其他action一起下发。 可以同时转发到多个端口吗? sudo ovs-ofctl add-flow s1 in_port=2,actions=output:1,2 结果: 是可以的。 ...
2020-10-09 21:11:22
1036
原创 ovs相关快速查找笔记
OVS相关快速查找笔记 研究生一年总结的ovs相关笔记,感谢mininet和ovs和openflow陪伴我这么久,都磨出感情了。 虽然一年了还是没有什么长进,这个笔记还是值得record的。加油吧! 代码路径 #内核态代码: /ovs/datapath/veridp-* #用户态:/ovs/lib/ #只有内核流表匹配失败的时候才会upcall到用户态去查,入口函数在/ovs/datapath/actions.c下的do_execute_actions,然后转veridp的pipeline处理。 ip操
2020-10-09 20:50:02
1049
1
原创 p4pktgen学习笔记(2)——运行示例
运行示例:demo1.p4_16.p4 文件位置: ~/p4pktgen-master/examples/ demo1.p4_16.p4 同文件夹下有已经编译好的json文件: ~/p4pktgen-master/examples/ demo1.p4_16.json 可以看到 p4文件有ParserImpl(),verifyChecksum(),ingress(),egress(),computeChecksum(),DeparserImpl()六个模块,但是对于p4pktgen来说只关心Parse
2020-09-15 16:40:36
298
原创 p4pktgen学习笔记(1)——介绍和安装
介绍 p4pktgen是一个为P4程序生成输入包和表条目的工具,它覆盖了程序的所有路径。 它支持用P4_14或P4_16变体语言编写的程序,只要程序可以使用开源p4c-bm2-ss编译器编译(p4c库的一部分), 编译为使用simple_switch 的bmv2 JSON文件软件交换机。 它目前覆盖了通过解析器和入口控制块的所有执行路径组合,但**忽略了出口控制块**。 它在simple_switch上运行测试用例来检查数据包是否遵循期望的执行路径,并写出描述测试用例的数据文件,该文件可在其他P4实现上执行
2020-09-15 16:25:21
371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人