NSP4——Network Simulator for P4

NSP4——Network Simulator for P4

1、前言

NSP4旨在为P4开发者,建立一个可视化的P4流表管理及拓扑创建工具,帮助P4开发者,更好的调试本身的P4程序。此开发工具是基于开源控制器Ryu中的开源应用gui_topology所改编的应用,并编写了可视化web界面,让开发者更直观的查看P4的运行时配置。html

源码可查看咱们的github连接:https://github.com/Emil-501/NSP4git

2、运行环境介绍

3、程序主要功能及程序架构

1、程序主要功能github

  • 动态生成底层拓扑
  • 查看底层拓扑视图
  • 查看指定P4交换机的table及table entry
  • 下发table entry
  • 删除table entry

2、程序架构web

图1

4、P4程序示例

参考源码请见:https://github.com/Emil-501/NSP4/tree/master/p4src浏览器

此P4程序结构,需动态配置table结构以下:网络

table-name match-key action
smac ethernet.srcAddr mac_learn; _nop
mcast_src_pruning standard_metadata.instance_type _nop; _drop;
dmac ethernet.dstAddr forward; broadcast

5、实验过程

(一)经过Ryu应用的启动命令,启动NSP4,并将P4程序放在NSP4/src下,如github连接:https://github.com/Emil-501/NSP4所示结构架构

$ ryu-manager ./app/p4web/p4web.py  //后面为NSP4应用所在路径

图2

该源码请查看:https://github.com/Emil-501/NSP4/tree/master/p4webapp

(二)进入浏览器,输入127.0.0.1:8080,进入web界面工具

图3

(三)创建mininet P4 网络拓扑开发工具

输入对应的拓扑信息:

图4

在右侧可得获得相应的可视化拓扑信息:

图5

(四)输入如下命令启动底层的mininet;经过net命令查看拓扑,拓扑创建正确

$ sudo ./run_demo.sh

图6

输入net命令

mininet> net

图7

(五)点击指定交换机,如图8所示;能够查看获得相应的table界面,如图9所示,可获得与4、P4程序示例相符的table结构

图8

图8

图9

图9

(五)下发Table entry

对S1的dmac表,下发如图所示的entry:

图10

可获得相应的流表信息已显示在web界面上:

图11

经过底层的P4运行时命令,也可查看到下发的entry信息:

图12

(六)删除Table entry

删除刚刚下发Table entry:

图13

经过底层的P4运行时命令,也可查看到刚刚下发entry信息已被删除:

图14

6、存在及待优化问题

界面美观程度较为通常,功能仅仅包括上述所示,缺乏查看counter之类的功能;clone下来以后须要根据自身电脑的配置信息,修改源代码相关路径信息;建议使用火狐、谷歌浏览器。

7、参考材料

http://www.sdnlab.com/1785.html

http://www.cnblogs.com/qq952693358/p/6195385.html

相关文章
相关标签/搜索