20210510 Programming Protocol-independent Packet Processors ( P4 ) - 1

課堂資料

P4 是用於編程與協議無關的包處理器的高級語言,其與SDN控制協議(如 OpenFlow)結合使用,在當前形式下,OpenFlow 顯式指定其所操作的協議標頭

幾年來,這個集合已經從 12個字段 增加到 41個字段,這增加了規範的複雜性,同時仍然沒有提供添加新標頭的靈活性

我們有三個目標:

  1. 現場可重配置性:程序員應該能夠在交換機部署數據包後改變交換機處理數據包的方式

  2. 協議獨立性:交換機不應綁定到任何特定的網絡協議

  3. 目標獨立性:程序員應該能夠獨立於底層硬件的細節來描述數據包處理功能

課堂練習

1

cd p4-test/1
gedit p4app.json basic.p4 cmd.txt 
cd ..

1 - 1

cd 1-1
gedit p4app.json basic.p4

2

cd p4-test
cd 2

誤關

gedit basic.p4 cmd.txt p4app.json
p4run
h1 ping h2 -c 5

變更mac_forward

h1 ping h2 -c 5
ls
rm basic.p4i basic.json topology.db
rm -rf log pcap
ls
p4run
h1 ping h2 -c 5

變更mac_forward => 1

h1 ping h2 -c 5

變更mac_forward => 2

h1 ping h2 -c 5
exit
p4run

查看完log之後

h1 ping h2 -c 5

Last updated

Was this helpful?