zoukankan      html  css  js  c++  java
  • 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

    二、运行环境介绍

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

    1、程序主要功能

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

    2、程序架构

    图1

    四、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应用所在路径
    

    图2

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

    (二)进入浏览器,输入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所示,可得到与四、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

    六、存在及待优化问题

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

    七、参考材料

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

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

  • 相关阅读:
    android常用工具类
    SharedPreferences的工具类
    Dialog对话框管理工具类
    Logger日志管理工具类
    android 复制、粘贴文字
    sd卡文件操作
    AndroidManifest.xml file missing 解决方案
    Jar mismatch! Fix your dependencies
    时间戳和字符串之间的互相转换
    常见块元素和内联元素
  • 原文地址:https://www.cnblogs.com/wpqwpq/p/6923608.html
Copyright © 2011-2022 走看看