# Open Compute Project Open Compute Project(OCP)は、コモディティ部品を組み合わせた高性能スイッチを構築するための完全なハードウェア仕様をオンラインで公開する業界コンソーシアムである。本書はこれを「オープンソースソフトウェアのハードウェア版」と表現し、PC自作コミュニティとの類推で説明する。OCP準拠の仕様に基づき、EdgeCoreやDeltaなどのベアメタルスイッチベンダーが完成品のスイッチを販売しており、これはPCエコシステムにおけるDellやHPのようなコモディティサーバベンダーの存在に相当する。(Source: [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 4 Bare-Metal Switches]] ch.4 §4.1) OCPの下では、スイッチのBIOSに相当するファームウェアとして*Open Network Install Environment(ONIE)*が標準化された。また、コミュニティ定義の論理固定機能パイプラインである[[SAI (Switch Abstraction Interface)]]もOCPの枠組みで策定されている。(Source: [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 4 Bare-Metal Switches]] ch.4 §4.1, §4.5.2) ## ONF との役割分担(Preface) *Software-Defined Networks: A Systems Approach* は、SDN をオープンソースで記述するにあたり、役割の異なる 2 つのコミュニティベース組織を軸に据える。OCP は SDN ソフトウェアスタックが動作する土台のコモディティハードウェア(ベアメタルスイッチなど)の**仕様策定と認証**を担い、[[Open Networking Foundation]] はエンドツーエンドのソリューションに統合できる**ソフトウェアコンポーネント群の実装**を担う。ハードウェアのコモディティ化と、その上で動くソフトウェアの実装とが、別々の組織に分かれている構図である。(Source: [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Preface]]) ## Open Network Linux (ONL): Switch OSの基盤(第5章) *Software-Defined Networks: A Systems Approach* 第5章は、OCPのもう一つのオープンソースプロジェクトとして[[Open Network Linux (ONL)]]を報告する。ONLはベアメタルスイッチ上で動くSwitch OSの最も一般的な基盤であり、Debianディストリビューションを出発点にSFP(Small Form-factor Pluggable)インターフェースモジュールなどスイッチ固有ハードウェアのサポートを追加する。[[Stratum]]のようなThin Switch OSはONLの上で動き、ONL Platform (ONLP)が公開するPlatform API経由でハードウェアカウンタやステータス変数にアクセスする。ONIE(BIOS相当)がスイッチの起動・OS導入を担うのに対し、ONL(Switch OS本体)は稼働中のOS層を担うという役割分担になる。(Source: [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 5 Switch OS]] ch.5) ## SONiCの前身プロジェクト母体(第3章) 『実践SONiC入門』第3章によれば、[[SONiC]]の組織的な活動は2016年にMicrosoftがオープンソースソフトウェアとしてOCPにコントリビューションしたことに始まり、その後SAIとともにOCPのプロジェクトとして活動を続けた。2022年にその運営が[[Linux Foundation]]へ移管され、[[SONiC Foundation]]として再編されるまで、OCPはSONiCの組織的な母体であった。(Source: [[@2025__Gihyo__実践SONiC入門 - Chapter 3 コミュニティ運営と開発プロセス]] ch.3 §3.1.1) ## 関連 - [[Open Networking Foundation]] — ソフトウェア実装を担う姉妹組織(OCP はハードウェア仕様・認証を担う) - [[SAI (Switch Abstraction Interface)]] — OCPが策定するコミュニティ定義の論理固定機能パイプライン - [[Open Network Linux (ONL)]] — OCPが提供するSwitch OSの基盤 - [[プログラマブルデータプレーン]] - [[SONiC]] — 2016〜2022年にOCPプロジェクトとして活動していたネットワークOS - [[SONiC Foundation]] — 2022年にOCPから運営を引き継いだLinux Foundation傘下組織 - [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 4 Bare-Metal Switches]] - [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 5 Switch OS]] ## 出典 - Peterson, Cascone, O'Connor, Vachuska, and Davie, *Software-Defined Networks: A Systems Approach*, 2021, Preface. https://sdn.systemsapproach.org/preface.html - Peterson, Cascone, O'Connor, Vachuska, and Davie, *Software-Defined Networks: A Systems Approach*, 2021, Chapter 4, §4.1, §4.5.2. - Peterson, Cascone, O'Connor, Vachuska, and Davie, *Software-Defined Networks: A Systems Approach*, 2021, Chapter 5: Switch OS. https://sdn.systemsapproach.org/stratum.html - [[@2025__Gihyo__実践SONiC入門 - Chapter 3 コミュニティ運営と開発プロセス]](ch.3 §3.1.1: SONiCの前身としてのOCPプロジェクト活動)