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

相關文章
相關標籤/搜索