サイトアイコン 日本P4ユーザ会

P4 Workshop 2022 視聴レポート

P4Workshop2022

P4 Workshop について

ONFが主催するP4関連のカンファレンスは、 “Workshop” 及び “Techinar (webinar)” を中心に、学会や他イベント併設の Meetup や Hands-on Seminar 等があります。カンファレンスは年1回カリフォルニアで実施されるメインの “P4 Workshop” の他に、各地域毎にも開催されており、昨年は以下3つの地域カンファレンスが実施されました。

本記事では今年(2022年)5月にカリフォルニアでオンライン実施された 2022 P4 Workshop On-Demand について著者が興味を持ったセッションを中心に取り上げます。

各セッションのスライド及び動画は現在もオンラインで視聴可能ですので、さらに詳しく知りたいセッションは是非視聴してみてください。

まとめ&雑感

Workshopの全セッションを視聴したところ、昨年から今年にかけての大きな変化として “P4の適用領域のサーバサイドへの拡大、及びそれに伴うターゲットの増加” を感じました。

例えば、OVS(OpenVSwitch)のP4対応とそのオフロード技術(ソフト・ハード)に関する多くのセッションがありました。ハードウェア的には Intel IPU, NVIDIA(Mellanox) DPU, FPGA 等を搭載した SmartNIC 型のアクセラレータのP4対応が進んでいます。

また、今までは少数の研究者による取組であった CPU ベースの実装である P4 on DPDK/eBPF も企業メンバーが参加するようになり、 “P4 の活用には Tofino ASIC を搭載した高性能スイッチが必要” という状況に変化が始まっています。

しかし、サーバサイドのP4活用は、現状では技術者を多く抱えかつハードウェアベンダ(Intel等)の積極的な支援を受けられる(購買力のある) Google などの1部の巨大企業に限られている状況です。また、ネットワーク(パイプライン)をスクラッチからプログラムしたい人は少数であるため、ユーザを増やしマスにプログラマビリティを解放するためにはアプリケーション開発者が利用可能な、オープンなフレームワークが必要となります。そのため、オープンなAPIを策定し、それが動作するプラットフォームを開発するために、OPI (Open Programmable Infrastructure Project) [OPI] というコミュニティが今年(2022年)立ち上がりました。本ワークショップ中で OPI を紹介するセッションはありませんでしたが、セッション中でイノベーションを継続するために必要なオープンなフレームワークの重要性と、OPIのようなオープンコミュニティの重要性が語られています。[INTEL-EDGE]

セッションでは明示的に説明していませんでしたが、これらサーバサイドのP4活用の技術や実装詳細を理解するための前提知識として PNA (Portable NIC Architecture) の理解が有用です。仕様書 [PNA-SPEC] は25ページと短くはありませんが、”C. Appendix: Packet path figures” に記載された図を見てスイッチとは異なるパケット処理の流れを頭に入れるだけでも、サーバサイドのP4に関する技術情報を理解しやすくなると思います。

新しいトピックとしてはサーバサイドのP4でしたが、実際にプロダクションに利用されているユースケースとしては、Tofino等の Switch ASIC に関する話題も多く紹介されています。例えば、アリババではロードバランサやテレメトリを活用した輻輳制御等、自社ネットワークに必要な機能を搭載したノードをP4を用いてベンダと共同開発しサービス利用した状況を発表しています。[ALIBABA]

また、新しいユースケースとしてモバイル事業者での活用例として SRv6 MUP (Mobile User Plane) [SOFTBANK] がソフトバンクから発表されています。

当然P4を利用して研究開発する人向けのセッションも多くありました。近年の傾向として、 “P4 を用いてパケット処理パイプラインをどうプログラムするか?” というデータプレーンの話題よりも、”P4 データプレーンをどう制御するか?” というコントロールプレーンの話題が中心となっています。

具体的には、TDI (Table Driven Interface) 、P4Runtime といったAPIのサーバサイドでの利用も考慮した拡張や、SONiC, PINS, IPDK/OPI といったスイッチOSやフレームワークが挙げられます。 [TDI] [SONIC] [SONIC-DASH] [PINS] [IPDK]

なお、これらのニーズに合わせたP4言語やアーキテクチャ、API等の拡張に関する議論状況は “P4 ON THE MOVE!” というセッションでも解説されています。

研究の試験実装プラットフォームとしてのP4活用は継続しており、K-melon (Change Detection), M-PolKA (Source Routing), PMNET (In-Network Persistence Memory), TCP-INT (INT using TCP option field) が紹介されています。

テーマ毎のまとめと注目セッション

今回はオンラインという事もあり、合計55個 と非常に多くのセッションが発表されました。

全てを視聴するには(著者の場合)断続的に2ヶ月近くかかりましたので、まずは Keynotes で現在の状況を把握したあとは、テーマやセッションタイトルから興味あるセッションをピックアップして視聴していくことをお勧めします。

セッションは以下6テーマに分類されています。(セッション数)

皆さんがそれぞれ興味あるセッションが発見できるように、テーマ毎の概要と、セッションの内容による分類を紹介します。

再掲:セッションのアーカイブ(動画・資料)へのリンク

Keynotes

P4に関連した動きを過去の歴史と現在の活動を踏まえて紹介しているセッションが多く、P4の全体像を掴むのに必聴のセッション。これまで話題の中心だった Switch ASIC ではなく、IPU/DPUを中心としたサーバサイドでのP4活用話題が多く、今後も引き続きこの流れが続くと予想される。個別事例としては、Aribaba が SNA と呼ばれる独自ハードウェア・ソフトウェアの開発をしつつ活用しているのが興味深い。(ユースケースや事例は Application に多くのセッションがあるためそちらを参照)

Language

P4言語の改良を目指し、主に以下2点を中心にセッションで提案されている。

Modularity, Portability を議論している2つのセッションは、理想的なパイプラインを設計する場合には必要な視点を与えてくれるため、独自パイプラインを設計する際には参照する事がお勧め。

但し、IPSAはFPGAで実装&検証済だが、他はコンセプト提案に近い状況であり、かつ、それぞれ狭く深い前提知識が必要となるため、興味あるテーマがあればピックアップして視聴するだけでも十分。

Target

IPU/DPU/FPGA/CPU(DPDK/eBPF) など、様々なターゲット毎の話題をセッションで解説。Switch ASIC をターゲットとしたセッションは無く、関心がサーバサイドでのP4活用にも拡大している事が実感できる。

興味あるターゲットのセッションを参照するのを推奨。例えば、Pensandoでは、P4言語やコンパイラにどんな拡張が必要だったか? を解説している。なお、IPU/DPUに関しては、オープンなフレームワークをコミュニティベースで開発する OPI: Open Programmable Infrastructure Project の動きにも注目

Tool Chain

P4プログラムとコンパイラの開発を推進するツールチェーンの紹介。各ツールチェーンはまだコンセプト紹介~研究開発中で広く実用可能な状況ではないが、今後のP4含めたデータプレーンプログラミングを効率化させるためにどのようなツールチェーンが必要かのイメージが理解できる。なお、IPDKに関するセッションがあるが、広い意味ではツールチェーンであるものの、IPDKに関するチュートリアルとして視聴するのが良い

Control Plane and NOS

データプレーンプログラミング言語としてのP4は、Switch ASICだけでなく IPU/DPU/CPU にも適用範囲が広がりつつある。また、サンプルプログラムやノウハウも広まっており、ユースケースに応じたP4プログラムを記述する事は容易になってきている。半面、それを制御するコントロールプレーンはプログラム規模が大きくなりがちで、研究目的の単機能プログラムを作成する事は容易ではあるものの、スイッチとしての基本機能である設定管理、統計情報取得、L2/L3アプリケーションを実現する各種デーモン(サービス)との連携、等、スクラッチから開発するのはかなり大規模な開発チームが必要となり課題となっており、注目されている分野である。

本Workshopでは、それらを解決するための提案として、デファクトNOSであるSONiCとP4を組み合わせたPINS、テーブル設定の抽象化を進めコントロールプレーンを実装しやすくするTDI(Table Driven Interface)、デファクトSoftware SwitchであるOVSでのP4サポート、サーバサイドでSmartNICやSoftware Switchを制御するNOSとしてのSONIC-DASH、等、各セッションにて取り上げられている。

特に最もアクティブな領域であるNIC型のターゲットに関しては、以下のような課題や取組が紹介されているため要注目

セッション分類

Application

様々なP4活用事例の紹介。「その他アプリケーション事例」に列挙されるように、サービスや製品のプラットフォームとしてP4活用が広がっている事がわかる。また、Switch ASIC だけでなく、IPU/DPUを用いた事例が広がってきている。

モバイルバージョンを終了