👋

p4-ansible: P4プログラムの結合ツール

2022/11/17に公開

背景

MNK Labs & Consulting の Hemant が 2022/11/08 の "P4.org open source developer days meeting" での質問に回答する形で p4-dev|p4-design mailing list で共有したツール。
(HermatはP4関連で色々な発信をしているので知っている人も多い?)

p4-dev|p4-design mailing list のスレッド

機能

P4 Code に keyword (annotation?) を付与し、機能追加されたP4Cを利用する事により、二つのP4プログラムをマージ可能。
ユースケースとしては、ある Vendor (e.g. Cisco, Arista) の P4 Code にユーザ独自の機能を追加する際に利用する事を想定している。(Vendor側がアップデートしても、ユーザ独自機能をパッチのように適用する事で追従が容易になる)

解説は MNK Labs & Consulting の以下ページに "Cisco daPIPE" との比較表付きで記載されている。
https://mnkcg.com/products/p4-ansible/

以下レポジトリの p4-extentions.pdf で、 override super 2つの keyword の説明をしている。
https://github.com/hesingh/mnkcg/tree/master/p4-code-reuse

また、override keyword (annotation?) を使った記述方法のサンプルも記載されている。
https://github.com/hesingh/mnkcg/blob/master/p4-code-reuse/ansible.md

利用方法

実際に利用するには Hermat に "仕事メールアドレス" でコンタクトして機能拡張された p4c を入手する必要がある。(ちょっと試させて、という雰囲気では無い)

スレッド最後のメール

To use the tool, the documentation asks to contact me to give access to download a p4c repo. Please contact with a work email address, unless you are Andy Fingerhut, who I know already, and will add him with a non-work email address.

おまけ

Arista の Tofino 搭載スイッチが Microsoft Azure で VxLAN 機能を提供していると記載されている。

引用:https://mnkcg.com/products/p4-ansible/

Discussion