NSP4——Network Simulator for P4

一、前言

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

源码可查看我们的github链接:https://github.com/Emil-501/NSP4

二、运行环境介绍

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

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的更多相关文章

  1. Network Simulator for P4(NSP4) src内容介绍

    Structure What's NSP4? src source code introduction What's NSP4? NSP4是一个用于P4的网络仿真工具,旨在简化P4的环境部署和运行,将 ...

  2. Fedora 23安装 NS2 (network simulator 2)

    1 实验环境 OS: Fedora 23 workstation 2 实验步骤 ( 参考了:http://www.isi.edu/nsnam/ns/ns-build.html) 本次实验的实验环境: ...

  3. HPE Comware Lab - Simulator

    http://h20565.www2.hpe.com/hpsc/swd/public/readIndex?sp4ts.oid=7107838&ac.admitted=1405352934644 ...

  4. 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?

    0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...

  5. (转) [it-ebooks]电子书列表

    [it-ebooks]电子书列表   [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...

  6. R统计分析处理

    [翻译]Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么? 阅读目录 0.前言 1.集成开发环境 2.语法 3.数据操作 4.图形显示 5.HTML部件 ...

  7. 【NS2仿真】RTP协议安装

    来自: http://personales.upv.es/fboronat/Research/NS2_RTP/NS2_RTP_RTCP_module.htm 文件:http://pan.baidu.c ...

  8. R语言-神经网络包RSNNS

    code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...

  9. Machine and Deep Learning with Python

    Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstiti ...

随机推荐

  1. [NOIP2016 DAY1 T2]天天爱跑步-[差分+线段树合并][解题报告]

    [NOIP2016 DAY1 T2]天天爱跑步 题面: B[NOIP2016 DAY1]天天爱跑步 时间限制 : - MS 空间限制 : 565536 KB 评测说明 : 2s Description ...

  2. 3.3 线程---Handler消息传递机制浅析

    Handler的执行流程图: 当我们的子线程想修改Activity中的UI组件时,我们可以新建一个Handler对象,通过这个对象向主线程发送信息;而我们发送的信息会先到主线程的MessageQueu ...

  3. 利用 Settings Sync 同步vs code配置

    vs code上有各种各样不同的插件,如果要在不同的电脑上使用 vs code 配置是件比较麻烦的事情,使用 Settings Sync 将 vs code 配置备份起来,当需要在其他电脑使用  vs ...

  4. leetcode 460. LFU Cache

    hash:存储的key.value.freq freq:存储的freq.key,也就是说出现1次的所有key在一起,用list连接 class LFUCache { public: LFUCache( ...

  5. 使用<button></button>标签

    使用<button></button>标签一定要记住给它设置type,因为它默认的type=“submit”,会提交表单,设置如下 <button type=" ...

  6. leetcode349—Intersection of Two Arrays

    Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...

  7. Alamofire请求网络

    HTTP - GET和POST请求- 如果要传递大量数据,比如文件上传,只能用POST请求- GET的安全性比POST要差些,如果包含机密/敏感信息,建议用POST- 如果仅仅是索取数据(数据查询), ...

  8. C++面向对象模型

    1. 基础知识 C++编译器怎样完毕面向对象理论到计算机程序的转化? 换句话:C++编译器是怎样管理类.对象.类和对象之间的关系 详细的说:详细对象调用类写的方法,那,c++编译器是怎样区分,是那个详 ...

  9. 大数据入门第二十一天——scala入门(二)并发编程Akka

    一.概述 1.什么是akka Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable).弹性的(Resilient).快速响应的(Responsive)应用程序的平台. 更多入门的基 ...

  10. 20155202张旭 Exp6 信息收集与漏洞扫描

    20155202张旭 Exp6 信息收集与漏洞扫描 一.实践目标与内容 1.实践目标: 掌握信息搜集的最基础技能. 具体有: 各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术:主机发现. ...