NSP4——Network Simulator for P4
NSP4——Network Simulator for P4
一、前言
NSP4旨在为P4开发者,创建一个可视化的P4流表管理及拓扑建立工具,帮助P4开发者,更好的调试自己的P4程序。此开发工具是基于开源控制器Ryu中的开源应用gui_topology所改编的应用,并编写了可视化web界面,让开发者更直观的查看P4的运行时配置。
源码可查看我们的github链接:https://github.com/Emil-501/NSP4
二、运行环境介绍
- P4开发环境(实验环境搭架,请参照此篇博客Run P4 without P4factory)
- 控制器Ryu (请参照RYU入门教程)
三、程序主要功能及程序架构
1、程序主要功能
- 动态生成底层拓扑
- 查看底层拓扑视图
- 查看指定P4交换机的table及table entry
- 下发table entry
- 删除table entry
2、程序架构

四、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 |
五、实验过程
(一)通过Ryu应用的启动命令,启动NSP4,并将P4程序放在NSP4/src下,如github链接:https://github.com/Emil-501/NSP4所示结构
$ ryu-manager ./app/p4web/p4web.py //后面为NSP4应用所在路径

该源码请查看:https://github.com/Emil-501/NSP4/tree/master/p4web
(二)进入浏览器,输入127.0.0.1:8080,进入web界面

(三)建立mininet P4 网络拓扑
输入对应的拓扑信息:

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

(四)输入以下命令启动底层的mininet;通过net命令查看拓扑,拓扑建立正确
$ sudo ./run_demo.sh

输入net命令
mininet> net

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

图8

图9
(五)下发Table entry
对S1的dmac表,下发如图所示的entry:

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

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

(六)删除Table entry
删除刚刚下发Table entry:

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

六、存在及待优化问题
界面美观程度较为一般,功能仅仅包括上述所示,缺少查看counter之类的功能;clone下来之后需要根据自身电脑的配置信息,修改源代码相关路径信息;建议使用火狐、谷歌浏览器。
七、参考材料
http://www.sdnlab.com/1785.html
http://www.cnblogs.com/qq952693358/p/6195385.html
NSP4——Network Simulator for P4的更多相关文章
- Network Simulator for P4(NSP4) src内容介绍
Structure What's NSP4? src source code introduction What's NSP4? NSP4是一个用于P4的网络仿真工具,旨在简化P4的环境部署和运行,将 ...
- Fedora 23安装 NS2 (network simulator 2)
1 实验环境 OS: Fedora 23 workstation 2 实验步骤 ( 参考了:http://www.isi.edu/nsnam/ns/ns-build.html) 本次实验的实验环境: ...
- HPE Comware Lab - Simulator
http://h20565.www2.hpe.com/hpsc/swd/public/readIndex?sp4ts.oid=7107838&ac.admitted=1405352934644 ...
- 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?
0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...
- (转) [it-ebooks]电子书列表
[it-ebooks]电子书列表 [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...
- R统计分析处理
[翻译]Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么? 阅读目录 0.前言 1.集成开发环境 2.语法 3.数据操作 4.图形显示 5.HTML部件 ...
- 【NS2仿真】RTP协议安装
来自: http://personales.upv.es/fboronat/Research/NS2_RTP/NS2_RTP_RTCP_module.htm 文件:http://pan.baidu.c ...
- R语言-神经网络包RSNNS
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
- Machine and Deep Learning with Python
Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstiti ...
随机推荐
- 10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.创建MySQL数据 create database solr; use solr; DROP TABLE ...
- python第二十九课——文件读写(读取读取中文字符)
演示:读取中文字符 结论: 1).如果不设置encoding,默认使用gbk进行编解码 2).如果编码和解码不一致,最终导致报错,但是一旦设置了errors='ingore',那么就不会报错,而采取乱 ...
- c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目
1.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行.这个容器包括WEB网页,应用程序窗体等... Activ ...
- CJOJ 【DP合集】最长上升序列2 — LIS2
题面 已知一个 1 ∼ N 的排列的最长上升子序列长度为 K ,求合法的排列个数. 好题(除了我想不出来我应该找不到缺点), 想一想最长上升子序列的二分做法, 接在序列后面或者替换. 所以对于每一个位 ...
- 矿难让显卡压了那么多货咋办?NV如是说
在苏州 GTC 开幕的几天前,英伟达刚刚遭遇了一次股价的腰斩. 近来加密货币的热度渐低,受到挖矿热潮照顾许多的英伟达「矿机」销量受到打击,甚至出现了严重的库存危机,加上近来刚刚发的 RTX20 系列显 ...
- Python2.7-SciPy
SciPy函数库在NumPy库的基础上增加了众多的数学.科学以及工程计算中常用的库函数.例如线性代数.常微分方程数值求解.信号处理.图像处理.稀疏矩阵等等 1.最小二乘拟合 详细介绍:https:// ...
- HDU1863(Kruskal+并查集水题)
https://cn.vjudge.net/problem/HDU-1863 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可). ...
- 【转】为什么volatile不能保证原子性而Atomic可以?
直接上好文链接!!! 为什么volatile不能保证原子性而Atomic可以?
- RTSP server 在mips 上莫名其妙退出(PC上则无此问题)
http://blog.csdn.net/lubing20044793/article/details/38523701 早在这篇blog以前写过,在虚拟机下调试sn9c291时,USB 数据传输出了 ...
- canvas绘画基础(一):认识canvas画布
html5提供了一个<canvas>标签,结合javascript的canvas api接口可以用来绘制图形和动画.最近工作中涉及到画图的任务,下面来了解一下canvas的基础:canva ...