文章

P4 Compiler 系列 – 自創 Architecture package

這邊先回顧一下編譯一個 P4-16 程式時所需要的大略步驟:

已目前普遍 bmv2 simple_switch 為例,在主程式最前方會先引用 core.p4 以及 v1model.p4 這兩個檔案

core.p4 包含了一些 P4 常用的核心功能,舉例來說他定義了 Parser & Deparser 參數的格式(packet_in, packet_out),或是常用的 Error 類型等等。

基本上,並沒硬性規定一定要引用 core.p4,例如目標並不支援可編程的 Parser/Deparser,則可以不用引用。

閱讀全文〈P4 Compiler 系列 – 自創 Architecture package〉

P4 Compiler 系列 – 簡介 Compiler 架構

接下來幾個章節會簡介目前 P4 Compiler 的設計,以及如何從頭開始撰寫一個新的 P4-16 package 並搭配自己寫的 P4 backend compiler 以及自己定義的 target binary。

最新版的 P4 Compiler 可以至 https://github.com/p4lang/p4c 下載,該 Compiler 支援了 bmv2 (v1model + simple switch), ebpf, graph(Pipeline 視覺化用) 以及一個測試用的 Compiler。
閱讀全文〈P4 Compiler 系列 – 簡介 Compiler 架構〉