p4の現状と展望...2019/10/11  · p4の現状と展望~そして我々にできること~...

43
日本 P4 ユーザ会 2019 P4の現状と展望 そして我々にできること 海老澤 健太郎 トヨタ自動車株式会社 Toyota Motor Corporation https://p4users.org/

Upload: others

Post on 03-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019

P4の現状と展望そして我々にできること

海老澤健太郎トヨタ自動車株式会社

Toyota Motor Corporationhttps://p4users.org/

Page 2: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4 Users Japan ??

研究&発明をする人

プラットフォームを作る人(デバイス・基礎ソフト)

使いやすい製品にする人

紹介・販売をする人

技術提供をする人(システム構築&サポート)

サービス・アプリケーションを作る人

Page 3: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4 Users Japan ??

研究&発明をする人

プラットフォームを作る人(デバイス・基礎ソフト)

使いやすい製品にする人

紹介・販売をする人

技術提供をする人(システム構築&サポート)

サービス・アプリケーションを作る人

エコシステムを構成している人々すべて

Page 4: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

本日のプログラム

Page 5: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4とは?

パーサー(ヘッダ解析)

パケット処理パイプライン

キュー(QoS)パケット書換

ProcessLogic

MatchTable

ProcessLogic

MatchTable

ProcessLogic

MatchTable

SwitchDataplane

データプレーンの挙動をプログラムできる言語

パーサー(ヘッダ解析)マッチテーブル (レイアウト・メモリ配分)

アクション(処理内容)

Page 6: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

データプレーンをプログラマブルにする目的

新しいプロトコルのサポート(ex: VxLAN)新しい領域への適応(ex: GTP, SFC)

パケットへの情報の埋め込み独自ヘッダの定義(ex: Telemetry, OAM)

新しいアプリケーション・機能の実装

ASIC改修には1.5~3年程度必要

スケーラビリティ向上(リソース適正配置)

汎用なACLマッチテーブル(数千ルール)↓

特定フィールドのExact Match(~数百万ルール)

1種類のハードウェアで複数のユースケースに対応

ユースケースに合わせたリソースの配分

Page 7: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

「ボトムアップ」から 「トップダウン」へ

"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

スイッチで実現したい機能⇒ ASICの機能ASIC の機能⇒スイッチが実現可能な機能

Page 8: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019

P4の歴史

P4の現状と展望~そして我々にできること~

Page 9: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

https://p4.org/specs/

Page 10: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

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

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

https://p4.org/specs/

Page 11: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4 で記述できないスイッチ機能へのアクセスP4の記述と同期して動作する必要がある設定・統計の管理(Port ID, Stats etc.)

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.

Open Sourced on 2019年9月10日https://github.com/stratum/stratum

Page 12: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4 on Fixed Function Switch ASIC

機械可読(API自動生成可能)なネットワーク挙動を記述する契約としてP4を利用

ONF Connect 2019 "P4 on FPM Switches with Stratum"https://www.opennetworking.org/wp-content/uploads/2019/09/3.30pm-Max-Pudelko-Stratum-FPM-Compiler.pdf

SDKLT is used to program fixed-pipeline switches using the Tomahawk chip from Broadcom.

Page 13: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019

ターゲットとプラットフォーム

• P4で記述したプログラムが動作する環境(チップ・エミュレーター)

• P4を利用できるプラットフォーム

P4の現状と展望~そして我々にできること~

Page 14: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019

NPUSwitch ASIC FPGA CPU

処理性能(スループット)

ターゲット(チップ・エミュレーター)

コンパイラ

P4の現状と展望~そして我々にできること~

ターゲット(P4 Target)P4 で記述したプログラムが動作する環境(チップ・エミュレーター)

xx Tbps

Barefoot (Intel)

xxx Gbps x Gbps

Xilinx, Intel

P4 Studio P4-SDNet (Xilinx)

Netcope NP4

xx Gbps

Netronome

Agilio P4C SDK p4lang/p4c

(BMv2, eBPF)

Page 15: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019

NPUSwitch ASIC FPGA CPU

処理性能(スループット)

ターゲット(チップ・エミュレーター)

Ethernet Switch高性能

P4の現状と展望~そして我々にできること~

ターゲット(P4 Target)P4 で記述したプログラムが動作する環境(チップ・エミュレーター)

xx Tbps

Barefoot (Intel)

xxx Gbps x Gbps

Xilinx, Intel

xx Gbps

Netronome (BMv2, eBPF)

SmartNIC高性能 + 拡張性

Server VM/CT拡張性・仮想環境

プラットフォーム種別

Page 16: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4 on ODM Ethernet Switch (Tofino)

https://barefootnetworks.com/partners/

様々なハードウェア構成のスイッチ

Page 17: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

Tahoe 2624

24 ports of 100G/40G QSFP28& 20 ports of 25G/10G SFP 28

Two Rear-Facing I/Os SupportingPowerful XEON-D Offload I/O

Xilinx Virtex UltraScale FPGA I/O

Tahoe 2860

32 ports of QSFP28

Control plane processor optionsx86 and Power PC

Data plane processors optionsMIPS and Power PC

注:参考情報です。現在の仕様は各メーカーにお問い合わせ下さい

Edge-Core: https://www.edge-core.com/productsInfo.php?cls=1&cls2=180&cls3=181&id=335 | Interface Masters: https://interfacemasters.com/products/switch-appliances/

Wedge100BF-32X/65X

32/65 x QSFP28 ports

CPU ModulesIntel x86 Broadwell-DE

Pentium D-1517

Memory (RAM)4/8/16 GB SO-DIMM DDR4

Storage32 GB M.2 SSD

Page 18: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

STORDIS BF2556X-1T

STORDIS BF6064X-T

注:参考情報です。現在の仕様は各メーカーにお問い合わせ下さい

STORDIS: https://www.stordis.com/products/stordis-bf6064x-t/

Page 19: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4 on Fixed Function Switch ASIC

ONF Connect 2019, "Stratum Overview & Update"https://www.opennetworking.org/wp-content/uploads/2019/09/2.00pm-Brian-OConnor-Stratum.pdf

Page 20: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

Page 21: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4 on Vendor Switch

詳細は各社から午後のセッションで

既存ネットワーク機器(OS)でのP4サポート

Page 22: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4 on SmartNIC (FPGA/NPU)NetFPGA-SUME Virtex-7 FPGA Development Board

注:参考情報です。現在の仕様は各メーカーにお問い合わせ下さい

Page 23: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4 on CPUBMv2

https://github.com/p4lang/behavioral-model

Stratum Tutorials: Container of BMv2 + Stratumhttps://github.com/stratum/tutorial

P4 to eBPF compilerhttps://github.com/p4lang/p4c/tree/master/backends/ebpf

Page 24: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019

P4は何に利用できるのか?

• P4を用いたプロトタイプ開発

• P4を活用したユースケースの実現• ユースケースを実現する手段としてのP4の活用

• 製品やソリューションの1部

• ユーザーは P4を意識する必要が無い利用方法

P4の現状と展望~そして我々にできること~

Page 25: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4を用いたプロトタイプ開発

IETF 104 Hackathon @Prague, Czechp4srv6 ... proto-typing SRv6 functions with P4 lang

https://github.com/ebiken/p4srv6/blob/master/demo/srv6/demo1-SRv6MobileUplane-dropin.md

Page 26: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4を活用したユースケースの実現

• ロードバランサー、パケットブローカー、INT(遅延測定)など• コントローラー(CyberMapper)を通じ REST APIで操作• OpenFlow や P4 Runtimeを用いたアクセスも可能

https://noviflow.com/

Page 27: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4を活用したユースケースの実現

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

https://www.kaloom.com/

Page 28: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4を活用したユースケースの実現

"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)

http://www.kulcloud.com/

Page 29: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

「ボトムアップ」から 「トップダウン」へ

"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

ASIC の機能⇒スイッチが実現可能な機能 スイッチで実現したい機能⇒ ASICの機能

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

トップダウンの力

Page 30: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019

P4 コミュニティの広がり

P4の現状と展望~そして我々にできること~

Page 31: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

https://p4.org/events/

本家 P4 Workshop@Stanford, California

Page 32: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

2018年9月

2019年3月

2019年9月

2019年10月

Page 33: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

P4 @ IETF Hackathon

https://datatracker.ietf.org/rg/coinrg/about/

https://p4.org/events/2019-07-20-ietf105/

Page 34: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019

日本でのP4の広まり

P4の現状と展望~そして我々にできること~

Page 35: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

Internet Week 2017https://www.nic.ad.jp/iw2017/program/b3/

https://www.slideshare.net/kentaroebisawa/p4alu-arithmetic-logic-unit-in-p4

BoFやユーザー会での活動

Page 36: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

https://www.janog.gr.jp/meeting/janog42/program/SP-P4

BoFやユーザー会での活動

2018年7月12日

Page 37: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

講演企業Barefoot NetworksNet One Systems

P4.org AristaCisco

Apresia & EdgecoreKaloom Software

P4 Workshop 2018 in Tokyo【データプレーンプログラミングの世界】

主催:P4.org、Barefoot Networks、ネットワンシステムズ株式会社(協賛)

2018年10月23日当日の風景|参加者100名以上

Page 38: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

「日本 P4 ユーザ会」

2019年6月28日

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

Page 39: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

https://p4users.org/

Page 40: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019

P4の現状と展望

P4の現状と展望~そして我々にできること~

Page 41: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

基礎研究(リサーチ)

言語とツールチェーン(P4-16, Stratum, 各社SDK)

多様なプラットフォーム(ASIC, FPGA, NPU, CPU)

商用製品(Appliance, NOS)インテグレーション・サポート

ユースケース&プロトタイプ

ツールチェーンの改善

フレームワーク

研究領域の拡大(In Network Computing)

Open Source NOS商用製品の利用と成熟

販売チャネルの拡大国内外コミュニティの交流

人材育成

Page 42: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

基礎研究(リサーチ)

言語とツールチェーン(P4-16, Stratum, 各社SDK)

多様なプラットフォーム(ASIC, FPGA, NPU, CPU)

商用製品(Appliance, NOS)インテグレーション・サポート

ユースケース&プロトタイプ

ツールチェーンの改善

フレームワーク

研究領域の拡大(In Network Computing)

Open Source NOS商用製品の利用と成熟

販売チャネルの拡大国内外コミュニティの交流

人材育成

自分ができること

やりたいこと

Page 43: P4の現状と展望...2019/10/11  · P4の現状と展望~そして我々にできること~ 日本P4 ユーザ会2019 データプレーンをプログラマブルにする目的

日本 P4 ユーザ会 2019P4の現状と展望~そして我々にできること~

本日のプログラム

システムインテグレーター

コミュニティ

リサーチ

ユーザー(狭義の)

テクノロジープロバイダー