若是想要了解 SDN OpenFlow 以及 P4 請不要吝嗇點擊喜歡或是訂閱我喔!(訂閱又不收費XD)
未來有機會也可以跟大家分享我當網管的辛酸血淚史,可以讓人解決問題時可以參考我的文章。
話不多說,我們就累狗!!
首先ecn.p4文件包含一個框架P4程序,其關鍵邏輯部分已由TODO註釋替換。
這些應該指導您的步驟,實作缺失部分的邏輯替換每個TODO。
首先,我們必須通過將TOS字段拆分為DiffServ和ECN字段來更改ipv4_t標頭。請記住要相應地更新校驗和塊。然後,在出口控制塊中,我們必須將隊列長度與ECN_THRESHOLD進行比較。如果隊列長度大於閾值,則將設置ECN標誌。
並且注意,只有當最終主機通過將原始ECN設置為1或2聲明支持ECN時,才應發生此邏輯。
完整的ecn.p4將包含以下組件:
以太網(ethernet_t)和IPv4(ipv4_t)的標頭類型定義。
以太網,IPv4,
使用mark_to_drop()丟棄數據包的動作。
一個動作(稱為ipv4_forward)它將設置下一跳的出口端口。
用下一跳的地址更新以太網目標地址。
用交換機的地址更新以太網源地址。
減少TTL。
一個出口控制塊,用於檢查ECN和standard_metadata.enq_qdepth並設置ipv4.ecn。
解析器,用於選擇將字段插入傳出數據包的順序。
解析器,控制,校驗和驗證以及重新計算和反解析器隨附的程序包實例化。
每次都需要記得清理掉mininet!
在此付上我的 Reference,我將會以簡短白話的方式來講解 P4 這套語言,若是你/妳不嫌棄可以訂閱我的發文
每天就根據我自己了解的程度來做發文的動作,如果自己對於 P4也有興趣可以先來預習,那我們明天見!
Reference :
P4_turtorial
[(http://docs.google.com/presentation/d/1zliBqsS8IOD4nQUboRRmF_19poeLLDLadD5zLzrTkVc/edit#slide=id.g37fca2850e_6_1802)]