NSP4旨在爲P4開發者,建立一個可視化的P4流表管理及拓撲創建工具,幫助P4開發者,更好的調試本身的P4程序。此開發工具是基於開源控制器Ryu中的開源應用gui_topology所改編的應用,並編寫了可視化web界面,讓開發者更直觀的查看P4的運行時配置。html
源碼可查看咱們的github連接:https://github.com/Emil-501/NSP4git
1、程序主要功能github
2、程序架構web
參考源碼請見: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/p4webapp
(二)進入瀏覽器,輸入127.0.0.1:8080,進入web界面工具
(三)創建mininet P4 網絡拓撲開發工具
輸入對應的拓撲信息:
在右側可得獲得相應的可視化拓撲信息:
(四)輸入如下命令啓動底層的mininet;經過net命令查看拓撲,拓撲創建正確
$ sudo ./run_demo.sh
輸入net命令
mininet> net
(五)點擊指定交換機,如圖8所示;能夠查看獲得相應的table界面,如圖9所示,可獲得與4、P4程序示例相符的table結構
圖8
圖9
(五)下發Table entry
對S1的dmac表,下發如圖所示的entry:
可獲得相應的流表信息已顯示在web界面上:
經過底層的P4運行時命令,也可查看到下發的entry信息:
(六)刪除Table entry
刪除剛剛下發Table entry:
經過底層的P4運行時命令,也可查看到剛剛下發entry信息已被刪除:
界面美觀程度較爲通常,功能僅僅包括上述所示,缺乏查看counter之類的功能;clone下來以後須要根據自身電腦的配置信息,修改源代碼相關路徑信息;建議使用火狐、谷歌瀏覽器。