# OF-DPA OF-DPA(OpenFlow-Data Plane Abstraction)は、Broadcomが自社の固定機能スイッチングASIC(Tomahawk等)向けに提供するハードウェア抽象化レイヤーである。OF-DPAが定義するAPIを通じてフロールールを基盤ASICへインストールできる。ソフトウェアスタック上ではOF-DPAの上にOpenFlowエージェント(Indigo、Big Switch製)、下にBroadcom SDK(プロプライエタリ)が位置し、OF-DPAとOF-Agent自体はオープンソースである。OF-DPAはTomahawk ASICの固定フォワーディングパイプラインの抽象表現を提供する層であり、既知のプロトコル(L2/L3など)向けのテーブル群からなる論理パイプラインを定義する。(Source: [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 4 Bare-Metal Switches]] ch.4 §4.5.1) OF-DPAは、P4のプログラム可能パイプラインにおける`v1model.p4`(アーキテクチャモデル)+`switch.p4`(具体的な機能実装)の組み合わせに相当する役割を、固定機能パイプライン側で果たす。`v1model.p4`が利用可能な段(control block)を定義するのに対し`switch.p4`がその段で動く機能を与えるのと同様に、OF-DPAはBroadcom ASICが提供する固定パイプラインの構造を抽象化する。プログラム可能ASICと固定機能ASICを単一のSDNソフトウェアスタックの下で共存させるには、両者を`v1model.p4`のようなアーキテクチャモデルの背後に隠し、P4コンパイラに各SDK向けのバックエンドコードを生成させる方法があるが、これは標準的なL2/L3挙動を超える任意のP4プログラムには通用しない。(Source: [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 4 Bare-Metal Switches]] ch.4 §4.5.1) OF-DPAは「ベンダー定義の論理固定機能パイプライン」の例であり、これと対をなすのが「コミュニティ定義」の[[SAI (Switch Abstraction Interface)]]である。ちょうどTNA(ベンダー定義)とV1Model/PSA(コミュニティ寄り)がプログラム可能パイプライン側で対をなすのと同じ構図である。Broadcom ASICは現在OF-DPAとSAIの双方に準拠する構成が存在する(SAI準拠論理パイプラインの実例)。(Source: [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 4 Bare-Metal Switches]] ch.4 §4.5.2, §4.6) ## Switch OS層からの位置づけ(第5章) *Software-Defined Networks: A Systems Approach* 第5章は、[[Stratum]](Thin Switch OS)の下層コンポーネントの説明の中でOF-DPAに触れる。BroadcomのTomahawk ASIC向けSDKは概ねOF-DPAレイヤーに相当すると述べられ、これはBarefootが[[Intel Tofino]]向けに提供するSDKと対比される。この対比は第4章が示すOF-DPA(ベンダー定義の固定機能パイプライン)とTNA(ベンダー定義のプログラム可能パイプライン)の構造的対応を、Switch OS層の実装(Stratumの下層構成要素)という別の角度から裏付ける。(Source: [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 5 Switch OS]] ch.5 §5.1) ## 関連 - [[Broadcom]] — OF-DPAの提供元。Tomahawk ASIC - [[SAI (Switch Abstraction Interface)]] — コミュニティ定義の対をなす論理固定機能パイプライン - [[プログラマブルデータプレーン]] - [[Stratum]] — OF-DPA相当のSDKを下層コンポーネントとして扱うThin Switch OS - [[@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, Chapter 4, §4.5.1, §4.6. - Peterson, Cascone, O'Connor, Vachuska, and Davie, *Software-Defined Networks: A Systems Approach*, 2021, Chapter 5: Switch OS, §5.1. https://sdn.systemsapproach.org/stratum.html