天天看點

實驗8:資料平面可程式設計實踐——P4

實驗8:資料平面可程式設計實踐——P4

1.掌握V1Model架構下P4_16的程式結構和基本文法

2.能夠運用 P4 進行簡單資料平面程式設計

1.下載下傳虛拟機軟體Oracle VisualBox或VMware;

2.在虛拟機中安裝Ubuntu 16.04 Desktop amd64,并安裝完整Mininet和P4開發環境;

3.提供P4鏡像P4-Suite2018.ova,提取碼:egwf

學習P4官方示例教程,連結:https://github.com/p4lang/tutorials,了解P4-16版本的基本文法、基于V1Model的P4代碼結構,完成如下練習:

實驗8:資料平面可程式設計實踐——P4

進入<code>/P4/tutorials/exercises/basic_tunnel</code>,打開basic_tunnel.P4,編輯補全代碼

實驗8:資料平面可程式設計實踐——P4

<code>make run</code>運作

<code>xterm h1 h2 h3</code>

<code>./receive.py</code>

<code>./send.py 10.0.2.2 "very cool"</code>

實驗8:資料平面可程式設計實踐——P4

<code>./send.py 10.0.3.3 "very 666"</code>

實驗8:資料平面可程式設計實踐——P4

從上面操作可以看出,沒有采用隧道轉發,h1向h2發送消息,h3接收不到,h1向h3發送消息,h2同樣接收不到

下面采用隧道轉發,<code>./send.py 10.0.3.3 "102192122" --dst_id 2</code>

實驗8:資料平面可程式設計實踐——P4

<code>./send.py 10.0.2.2 "student 102192122" --dst_id 3</code>

實驗8:資料平面可程式設計實踐——P4

從上面操作得知,采用隧道轉發後,通信是不再根據ip進行發送消息,而是根據指定的 dst_id 進行轉發。

實驗8:資料平面可程式設計實踐——P4

這次實驗在閱讀P4文檔時雖然有谷歌翻譯,但是編寫補全代碼時還是很入手,主要還是基礎太差,很多代碼看不懂,閱讀效率低下,參考了同學的代碼,才編寫出來,現在非常了解老師上課說的,要了解p4的原理,實驗操作部分非常簡單,但是編寫補全代碼就是寫不來。在後面小組做的負載均衡大作業,盡可能多了解學習P4,用P4額外的進行一次負載均衡,加油。

實驗8:資料平面可程式設計實踐——P4