文章

ONF 於 Layer123 的 demo 影片釋出

ONF 於今年荷蘭的 Layer123 大會上展示透過 P4 Runtime 控制四台 Wedge100-BF32x/65x P4 交換機,而在交換機中使用的 Pipeline 是由 Google 提供的 tor.p4,透過一個針對 tor.p4 pipeline 所開發的 App 以及數個 ONOS core App 來展示基本的 ECMP 封包傳輸。

影片中由詳細的架構介紹以及運作流程,並附上實際的操作畫面。

影片如下:

簡介 P4 PI 函式庫

在安裝 bmv2 之前,若需要讓 bmv2 能夠支援 P4Runtime 協議,則必須要先下載 PI 函式庫以及安裝它。

PI 函式庫的 Repo:https://github.com/p4lang/PI/

在 Repo 最上方的簡介是寫 P4Runtime – a control plane framework and tools for the P4 programming language

但是它其實包含了幾個部分:

  • P4Runtime protobuf 定義
  • P4Runtime gRPC server 實作
  • P4Runtime 前端(frontend)
  • PI library

而這些元件的關係如下圖:

PI

一個裝置如果要支援 P4Runtime 的話,就必須要有 P4Runtime 相關的 server 實作,這一個 server 僅是依據定義好的 protobuf 檔案去實作相關的 RPC 的函式,而在 server 接收到相關的呼叫之後,會把資訊傳給 P4Runtime frontend,這一層負責將 P4Runtime 轉換成 PI 函式庫所使用的資料結構,並呼叫特定的 PI 函式(如 pi_table_entry_add),且在這一層也會儲存一些資訊,例如已新增的 Table Entry 或是 Group 等等。

在 PI 這一個 Repo 中已經定義好 server 以及前端處理的部份,所以裝置僅需依據 PI 所提供的介面去實作相關的函式即可。

需要實作的函式可以在這邊找到:https://github.com/p4lang/PI/blob/f5799c11d5b9684e8e1a8412dbe80b50d17c18da/include/PI/target/pi_imp.h

P4Runtime & P4 Info 簡介

P4 Runtime 是一套基於 Protobuf 以及 gRPC 框架上的協定,透過 P4 Runtime,SDN 控制器或是使用者可以控制支援 P4 的裝置。

P4 Runtime 目前是由 P4 API Workgroup 所制定,這一個 Group 裡面主要的人員是來自於 Barefoot,也有其他公司參與。

目前 P4 Runtime 還在開發階段,但大多數需要的功能都已經被支援,例如操作 Table Entry 或 Action profile、查詢 Counter 等等。 閱讀全文〈P4Runtime & P4 Info 簡介〉

ONF P4 Brigade meeting 影片釋出

ONF P4 Brigade 今日(10/25)舉辦了 Brigade Meeting,其中討論了未來幾個主要的 Use case 規劃

第一個是 Fabric.p4,住要是希望能夠將 P4 運用在 CORD fabric 中

另一個是 INT,是目前 Barefoot 已有的計畫,而 ONF 希望能夠結合 INT 與 ONOS 去蒐集網路資訊,並運用於 A-CORD 中。

影片如下: