文章

簡單介紹 P4 語言(六)- switch.p4

本文轉載自:takeshi.tw

這一次要稍微提一下有關 P4 Switch以及相關的設計。

P4 Switch 這一個 repo 中其實整合了許多不同的元件,如下:

  • Software switch(透過 switch.p4 產生)
  • Resource Mgmt. API(透過 switch.p4 產生)
  • Switch API
  • Switch Abstraction Interface(SAI)
  • Switchlink(Linux netlink listener)

閱讀全文〈簡單介紹 P4 語言(六)- switch.p4〉

簡單介紹 P4 語言(五)- Counter, Meter & Register

本文轉載自:takeshi.tw

這一次要講的是 Counter、Meter 以及 Register 這三個部分。

這三個東西比較算是廣域的,也就是說不會因為一個封包處理完就結束。

在 P4 當中,他們將這三個東西視為”Cell”,也就是在 P4 的定義中,他們需要先被定義成一組陣列才可以使用。

閱讀全文〈簡單介紹 P4 語言(五)- Counter, Meter & Register〉

簡單介紹 P4 語言(二)- Table

本文轉載自:takeshi.tw

這一篇將會介紹 Table (Match + Action)

上一篇說明了 Header 以及 Parser 定義方式,在 p4 當中,也是存在與 OpenFlow Switch 類似的 Match 以及 Action 機制。

不像 OpenFlow 因為特定 Match field 以及特定 Action 而無法有彈性的處理 Packet;P4 因為可以自行定義 Header 以及 Parser,所以在 Header 操作上跟 OpenFlow 有一些不同,而 Table 處理的流程更加的容易理解。

閱讀全文〈簡單介紹 P4 語言(二)- Table〉

簡單介紹 P4 語言(一)- Parser

本文章轉自:https://takeshi.tw

最近因為研究的關係開始研究 P4 這一個語言,所以順手將自己看到的東西做一個筆記,後續開發可以在拿出來參考。

簡介


P4語言是由數間大學(Stanford, Princeton)以及企業(Barefoor Netowrk, Intel, Google, Microsoft)於 2014 SIGCOMM 中提出,主要希望解決的問題是一般的 Switch,包含 SDN Switch 都只能夠處理一般的封包,例如 Ethernet、VLAN、IPv4 等等。

透過 P4,開發者能夠直接定義出一個 Switch 能夠處理的封包格式,舉例來說定義一個新的 Ethernet type,或是直接不用 Ethernet header,用自行定義的封包結構,另外就是他可以不被侷限現在特定的硬體之下執行,只需要有對應的編譯器就可以佈署,這部份之後會在說明。

閱讀全文〈簡單介紹 P4 語言(一)- Parser〉