
執筆者: ごま
最終更新: 2025/10/21
おひさしぶりです、ごまです。今回は、P4_16 Language Specification (v1.2.5) の非公式日本語訳プロジェクトを開始させていただいたことに関するお知らせとして、本記事を書かせていただきました。
実際のWebページはこちらから見ることができます。
https://p4-jp-community.github.io/p4-16-spec-jp/
P4はProgramming Protocol-independent Packet Processorsの略であり、ネットワークにおけるスイッチ等のデバイスのデータプレーンに対するプログラミングを行うためのドメイン固有言語 (DSL: Domain-Specific Language) です。データプレーンというのはスイッチ等がパケットを受け取った際、転送や加工を実行する部分を指します(厳密な定義ではありませんが......)。
従来はベンダーがあらかじめ用意した固定的な機能に従うのが一般的でしたが、P4を用いることによりネットワークエンジニアや開発者が装置のパケット処理自体を独自に記述することができます。これによって、独自プロトコルの実装やトンネリングなどを柔軟に行うことが可能になります。
P4にはP4_14とP4_16の2つのバージョンが存在しますが、本プロジェクトは主にP4_16の仕様書の翻訳を対象としています。
正直に言ってしまうと、P4_16の仕様書は専門用語を多く含んだ英語で書かれているため、読めなくはないのですが毎回見返そうと思うとなかなか大変です。そのため、開発の最中になるべく楽に仕様を参照できるようにすることを目的として本プロジェクトを立ち上げました。だいぶ後ろ向きな理由ではあります......。
現時点では、2024年10月11日にThe P4 Language Consortiumによって公開された、P4_16 Language Specification (v1.2.5)を翻訳の対象として考えております。このドキュメントが含まれているリポジトリは現時点(2025年10月11日)ではApache-2.0 licenseのもとで公開されているため、翻訳版も同じライセンスで公開しております。
本プロジェクトはGitHubのリポジトリ上で進めており、どなたでも参加可能です。現時点では細かい作業フロー等が確立されておらず恐縮ですが、もし興味をお持ちの方がいらっしゃいましたら、遠慮なくリポジトリのIssueやPull Requestの作成等を通じてご参加ください。
私自身が個人的にMarkdown形式でのドキュメント管理に慣れていることもあり、本プロジェクトでは元のドキュメント(Madoko形式)を複数のMarkdownファイルに分割して管理しております。Webページの生成は、Markdownをソースとしてサイトを生成できるMkDocsを利用して行っています。

ホスティングはGitHub Pagesを利用しており、リポジトリのmainブランチにpushが行われるたびにGitHub Actionsを用いて自動的にサイトがビルド・デプロイされるようになっています。
ただ、このあたりのフローも特に確立されているわけではないため、今後また異なる手法を採用していく可能性もあります。
現時点では、以下のような課題・問題点が存在しています。
以上が、P4_16 Language Specification (v1.2.5) の非公式日本語訳プロジェクトの開始に関するお知らせとなります。P4に興味をお持ちの方や、翻訳プロジェクトに参加してみたい方がいらっしゃいましたら、ぜひお気軽にご参加ください。
この人が書いた記事