Data & Control Plane を繋ぐ API～現状と実装 ～Kentaro Ebisawa, Principal Researcher
Toyota Motor Corporation

InfoTech, Connected Advanced Development Div.
MPLS JAPAN 2019

昨年の今頃
そして、１年が経ち …
Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

多様なプラットフォームの拡充
P4 で記述したプログラムが動作する環境（チップ・エミュレーター）

Switch ASIC

FPGA

NPU

CPU

xx Tbpsxxx Gbps

xx Gbpsx Gbps

処理性能（スループット）

Barefoot (Intel)

Xilinx, Intel

Netronome(BMv2, eBPF)

ターゲット（チップ・エミュレーター）

Ethernet Switch

SmartNIC

Server VM/CT

高性能

高性能 + 拡張性

拡張性・仮想環境

プラットフォーム種別
Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019広がるデータプレーン・プログラミングの輪「日本 P4 ユーザ会」 発足

https://p4users.org/committee-members/

2019年6月28日

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019https://p4users.org/

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

日本 P4 ユーザ会 2019 開催

コミュニティ
ユーザー（狭義の）リサーチ
テクノロジープロバイダー

2019年10月11日
Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

システムインテグレーター
MPLS JAPAN 2019

日本 P4 ユーザ会 2019 開催

145人＋スタッフ
Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

これまでの１年

次の１年

データプレーン
実装手法の理解拡大

コントロールプレーン
実装手法の検討

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

コントロールプレーンの実装場所
プロトコルデーモンを介した制御

コントローラーからの直接制御

Controller & ApplicationController & Application

protocol daemons(ospf, is-is, bgp, mpls …)

dataplane

dataplane(parser & match / action table)(parser & match / action table)

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

コントロールプレーンの実装場所
プロトコルデーモンを介した制御
Controller & Application

良いところ• コントローラーとの接続が切れても動作• 各ノードの自律的な動作が可能• コントローラーがシンプルに苦労するところ
protocol daemons(ospf, is-is, bgp, mpls …)••••

多機能＆安定なプロトコル実装
データプレーンとのインテグレーション（開発）
データプレーン変更へのプロトコル実装の追従
データプレーン変更時のAPI変更

dataplane(parser & match / action table)

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

コントロールプレーンの実装場所
良いところ• ユースケースに応じたコントロールプレーンとデータプレーン両方の変更が容易• データプレーン変更時もAPIの変更は不要（データのみ変更）

コントローラーからの直接制御
Controller & Application

苦労するところ• コントローラーが複雑に（パス計算など）• コントローラーとの接続断時の冗長化

dataplane(parser & match / action table)

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

“カスタマイズされたデータプレーン”＆ “コントロールプレーン”
実装例

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019https://noviflow.com/

WAN Edge & CORE (SD-CORE)• MPLS VPN ベースのサービスを短期間・低コストで実現• MPLS forwarding• Segment Routing• Traffic Engineering• Streaming Telemetry• Service Automation（マルチドメイン）• Tofino (P4) ベースの White Box Switch• OpenDaylight （SDN Controller）

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

LuminaFlowManager

LuminaSDNController

MPLS JAPAN 2019https://noviflow.com/• ロードバランサー、パケットブローカー、INT（遅延測定）など• コントローラー（CyberMapper）を通じ REST API で操作• OpenFlow や P4 Runtime を用いたアクセスも可能

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019https://www.kaloom.com/• Programmable Spine / Leaf Switch を利用した "Software Defined Fabric"• サーバーの仮想スイッチと連携し ASIC へとオフロード• 低遅延や拡張性を実現

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019http://www.kulcloud.com/"Using Programmable Chip and Open Source SW Toward Disaggregated
Network Packet Broker and 5G UPF“, P4 Workshop, May 1st, 2019• "Prism Controller" を用い P4 で作ったデータプレーンを管理• モバイルプロトコル（GTP）にも対応• Network Packet Broker (NPB), 5G UPF (with N4 interface)

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

「ボトムアップ」 から 「トップダウン」 へ
ASIC の機能 ⇒ スイッチが実現可能な機能スイッチで実現したい機能 ⇒ ASICの機能"How We Might Get Humans Out of the Way - Keynote by Nick McKeown", ONF Connect 2019https://www.opennetworking.org/onf-connect-2019-resources/
https://www.opennetworking.org/wp-content/uploads/2019/09/Connect-2019-Nick-McKeown.pdf

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

「ボトムアップ」 から 「トップダウン」 へ
ASIC の機能 ⇒ スイッチが実現可能な機能スイッチで実現したい機能 ⇒ ASICの機能

実現可能な
ユースケースの数

トップダウンの力"How We Might Get Humans Out of the Way - Keynote by Nick McKeown", ONF Connect 2019https://www.opennetworking.org/onf-connect-2019-resources/
https://www.opennetworking.org/wp-content/uploads/2019/09/Connect-2019-Nick-McKeown.pdf

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

コントロールプレーンの実装場所
コントローラーによる独自データプレーン
直接制御によるユースケースの拡大「データプレーンの変化に追従可能」 な
プロトコル実装の不在

コントローラーからの直接制御
Controller & Application（少なくても現時点では）コントローラーからのデータプレーン直接制御がより多くの恩恵をもたらたす

dataplane(parser & match / action table)

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

“データプレーン” と “コントロールプレーン”を繋ぐ API

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

APIの標準化・コントロールプレーンとの連携

https://p4.org/specs/

ONS 2018, "Tutorial: P4 and P4Runtime Technical Introduction and Use Cases for Service Providers"
https://events.linuxfoundation.org/wp-content/uploads/2017/12/Tutorial-P4-and-P4Runtime-Technical-Introduction-and-Use-Cases-for-Service-Providers-Carmelo-Cascone-Open-Networking-Foundation.pdf

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

P4 で記述できないスイッチ機能へのアクセス
P4の記述と同期して動作する必要がある設定・統計の管理（Port ID, Stats etc.）
Open Sourced on 2019年9月10日
https://github.com/stratum/stratum

P4Runtime provides a flexible mechanism for configuring the forwarding pipeline on a network switch.
gNMI is a framework for network device management that uses gRPC as the transport mechanism.
Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019https://www.apresiatac.jp/blog/201910071861/

Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019

まとめWhite Box & Disaggregation によりトップダウンなネットワーク設計が可能に実現したいユースケース
コントロールプレーンの選択・実装
データプレーンの実装・統合

APIの標準化・オープンソース化によりコントロールプレーンもオープンな技術で実装可能に
Data & Control Plane を繋ぐ API｜海老澤健太郎＠トヨタ自動車

MPLS JAPAN 2019