將 P4-14 快速轉換至 P4-16 方法

目前 P4 團隊主要著重於 P4-16,然而 P4-16 目前只有釋出 pre-release 版而已,未來是否會有更改還不確定。

因此多數人所撰寫的 P4 程式都是基於 P4-14 標準,但是若有一天 P4-16 正是釋出之後,就需要將之前所寫的 P4-14 程式都轉換成 P4-16 的規格。

官方目前所釋出的 P4-16 編譯器就提供了快速轉換的功能,主要的原理是透過將 P4-14 先編譯成 HLIR,在將 HLIR 在反向轉換成 P4-16。

轉換方法:

首先需要先安裝 p4c(https://github.com/p4lang/p4c/),依據官方所提供的安裝教學,很快的就可以安裝起來。

補充一下,在編譯完(make check -j4)之後,可以在執行 sudo make install 讓他安裝到可執行路徑上。

安裝完編譯器之後,即可使用 p4c-bm2-ss 轉換。

p4c-bm2-ss --p4v 14 --pp [輸出檔案] [輸入的檔案]

輸入的檔案請使用最主要的檔案,包含 control 以及 table 等,他會自動去找尋有 include 的檔案加以編譯。

輸出僅會有一個檔案,裡面包含了所有從 P4-14 檔案轉換後的內容(Header~Control Blocks)

轉換好的檔案一樣可以直接使用 p4c-bm2-ss 編譯成 bmv2 simple-switch 這個模擬器去執行。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料