A2-03 Interop Tokyo 2019
5G時代に向けた
In Network Computing
トヨタ自動車株式会社
コネクティッド先行開発部 InfoTech DCインフラG
プリンシパル・リサーチャー 海老澤 健太郎
~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
https://www.linkedin.com/in/ebiken/
コネクティッドカー向け
次世代ネットワークの研究
(データ収集&解析基盤) データセンター
(データ解析基盤)
携帯網 固定網
Edge
Computing
5G/4G WiFi
プロトタイピング
In Network Computing
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
モビリティサービス・プラットフォーム(MSPF)
総務省:Connected Car 社会の実現に向けた研究会
(第4回)資料4-4 「トヨタのConnected戦略」
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
「大規模データのリアルタイム処理」の効率化
現在:数十MB/台・月×数十万台
⇒ 2025年:数百MB以上/台・月×数千万台
総務省:Connected Car 社会の実現に向けた研究会
(第4回)資料4-4 「トヨタのConnected戦略」
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
CAN (Controller Area Network)
Data Center via DCM
Renesas Electronics: In-Vehicle Networking Solutions
https://www.renesas.com/jp/en/solutions/automotive/technology/networking-solutions.html
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
CPUの高速化のトレンド
Karl Rupp “40 Years of Microprocessor Trend Data”
https://www.karlrupp.net/2015/06/40-years-of-microprocessor-trend-data/
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
ドメイン特化型アーキテクチャの必要性
Hennessy and David Patterson Deliver Turing Lecture at ISCA 2018
https://www.acm.org/hennessy-patterson-turing-lecture
“A New Golden Age for Computer Architecture:
Domain-Specific Hardware/Software Co-Design,
Enhanced Security, Open Instruction Sets, and Agile Chip Development,”
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
ドメイン特化型 プロセッサ(例)
Reference: https://www.barefootnetworks.com/technology/
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
P4 ... パケット処理に特化したプログラミング言語
P4 Source Code パケット処理パイプラインの定義
パーサーやテーブル、アクション、など
P4 Compiler P4をTarget上で実行可能な形式にコンパイル
Target毎に提供される
Target (P4対応Dataplane)
P4 Dataplane runtime に従いパケットを処理
Hardware: ASIC, NPU, FPGA | Software: CPU
“Programming Protocol-Independent Packet Processors”
https://p4.org/
ASIC, NPU, FPGA
A2-03 Interop Tokyo 2019
研究事例
Netcope P4コンパイラ+FPGAを用いた
CANデータオフロードの試作
5G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
CANデータ物理量変換(試作)
Programmable Switch
Match: 車種+フィールドID
Action: 値の変換
Match: 車種+フィールドID
Action: 値の変換
. . .
. . .
. . .
変換後の車両情報車両情報
BYTEアライメントではないデータの超高速ストリーム処理
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
プラットフォーム選択と実装上の課題
•車種によりデータは変わる
•変換ロジックも変わる(かもしれない)
課題 : HDLを用いた高速パケット処理プログラムの難しさ
ASIC NPU FPGA
スループット ~6.4Tbps ~100Gbps ~200Gbps
計算ロジックの追加(#1) × 〇 ◎
テーブルの拡張性(#2) × △ 〇 (#1) P4 Extern
(#2) Memory & Lookup Logic
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
開発フローの比較
P4プログラミング
P4プログラムチェック
論理合成
配置配線
タイミング検証
(シュミレーション)
Netcope
P4 Cloud
RTL設計
(Verilog/VHDL)
論理検証
(シュミレーション)
論理合成
配置配線
タイミング検証
(シュミレーション)
一般的な
FPGA開発
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
P4 プログラム例(port forward)
// Standard Headers
header_type ethernet_t {
fields {
dstAddr : 48;
srcAddr : 48;
etherType : 16;
}
}
header ethernet_t ethernet;
header_type ipv4_t {
fields {
version : 4;
ihl : 4;
diffserv : 8;
totalLen : 16;
identification : 16;
flags : 3;
fragOffset : 13;
ttl : 8;
protocol : 8;
hdrChecksum : 16;
srcAddr : 32;
dstAddr: 32;
}
}
header ipv4_t ipv4;
ヘッダの定義
parser start {
return parse_ethernet;
}
parser parse_ethernet {
extract(ethernet);
return select(latest.etherType) {
ETHERTYPE_IPV4 : parse_ipv4;
default: ingress;
}
}
parser parse_ipv4 {
extract(ipv4);
return select(latest.protocol) {
IP_PROTOCOLS_ICMP : parse_icmp;
IP_PROTOCOLS_TCP : parse_tcp;
IP_PROTOCOLS_UDP : parse_udp;
default: ingress;
}
}
parser parse_udp {
extract(udp);
return select(latest.dstPort) {
default: ingress;
}
}
パーサーの定義
action _drop() {
drop();
}
action _nop() {
}
action forward(port) {
modify_field(metadata.egress_port, port);
}
table t_fwd {
reads {
metadata.ingress_port: exact;
}
actions {forward; _drop;}
}
control ingress{
apply(t_fwd);
}
アクション/テーブル/コントロール
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
P4 プログラム例(CAN処理ロジックの疑似コード)
CANデータをヘッダとして
構造的に定義
header_type can_metadata_t {
fields {
id_model : 32;
id_type : 32;
timestamp : 64;
}
}
header can_metadata_t can_metadata;
header_type can_base_t {
fields {
id : 12;
len : 4;
}
}
header can_base_t can_base;
...
ヘッダの定義
CANデータのID毎にパース
するバイト数等を定義
parser parse_udp {
extract(udp);
return select(latest.dstPort) {
UDP_PORT_CAN : parse_can;
default: ingress;
}
}
parser parse_can {
extract(can_metadata);
return parse_can_data;
}
parser parse_can_data {
extract(can_base);
return select(can_base.id) {
0x003 : parse_can_data003;
0x005 : parse_can_data005;
0x007 : parse_can_data007;
...
}
}
パーサーの定義
マッチしたCAN_IDに応じデータ
変換するアクションを定義
action convert_dataXXX() {
// set fixed fields
modify_field(can_cdataXXX.id0, 3);
modify_field(can_cdataXXX.sid0, 0);
modify_field(can_cdataXXX.len0, 4);
// calculate remaining fields
modify_field(can_cdataXXX.val0, val0-4);
modify_field(can_cdataXXX.val1, val1*2);
....
}
....
アクション/テーブル/コントロール
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
Netcope P4 Cloud
Netcope P4 Cloud
P4 -> FPGA Firmware コンパイル
ウェブサービス(Web Service)
ターゲット・プラットフォームの選択
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
Netcope P4 Cloud
P4チェック結果、合成結果レポートの表示
合成されたファームウェアのダウンロード
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
Netcope P4 Cloud
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
まとめ
CPU高速化の限界(End of Moore’s Law)
ドメイン特化型プロセッサ+プログラミング言語
パケット処理に特化したドメイン特化型言語の普及(P4)
プラットフォームに合わせた開発環境の普及により、
ユースケースに合わせプラットフォームを選択できる時代に
A2-03 Interop Tokyo 2019
Appendix:
Research of In Network Computing
5G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
IRTF Computing in the Network (COIN)
性能の向上と新たなネットワーク化されたアプリケーションを実現可能にすべく
ネットワーク内コンピューティングの研究を育成・促進する
Initial Meeting: IETF 103 Bangkok (2018年11月9日)
Wiki: https://trac.ietf.org/trac/irtf/wiki/coin
Mailing List: https://www.irtf.org/mailman/listinfo/coin
https://trac.ietf.org/trac/irtf/attachment/wiki/coin/coin_ietf103_chair_slides%20-%20Finalv3.pptx
A2-03 Interop Tokyo 20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
https://dl.acm.org/citation.cfm?doid=3132747.3132764
A2-03 Interop Tokyo 2019
• In-Network Data-Center Computing
• draft-he-coin-datacenter-00
• machine learning, graph analysis, data analytics, map reduce
• In Network Computing Enablers for Extended Reality
• draft-montpetit-coin-xr-02
• Augmented Reality (AR), Virtual Reality (VR), Extended Reality (XR)
• Information Centric Networking (ICN) & NDN
• Network Coding, Smart contracts (block chain)
• Overview of Edge Data Discovery
• draft-mcbride-edge-data-discovery-overview
• Named Data Networking (NDN)
• Content-Centric Networking (CCN)
5G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
IRTF Computing in the Network (COIN)

Interop2019 Toyota Netcope P4

  • 1.
    A2-03 Interop Tokyo2019 5G時代に向けた In Network Computing トヨタ自動車株式会社 コネクティッド先行開発部 InfoTech DCインフラG プリンシパル・リサーチャー 海老澤 健太郎 ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
  • 2.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ https://www.linkedin.com/in/ebiken/ コネクティッドカー向け 次世代ネットワークの研究 (データ収集&解析基盤) データセンター (データ解析基盤) 携帯網 固定網 Edge Computing 5G/4G WiFi プロトタイピング In Network Computing
  • 3.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ モビリティサービス・プラットフォーム(MSPF) 総務省:Connected Car 社会の実現に向けた研究会 (第4回)資料4-4 「トヨタのConnected戦略」
  • 4.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ 「大規模データのリアルタイム処理」の効率化 現在:数十MB/台・月×数十万台 ⇒ 2025年:数百MB以上/台・月×数千万台 総務省:Connected Car 社会の実現に向けた研究会 (第4回)資料4-4 「トヨタのConnected戦略」
  • 5.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ CAN (Controller Area Network) Data Center via DCM Renesas Electronics: In-Vehicle Networking Solutions https://www.renesas.com/jp/en/solutions/automotive/technology/networking-solutions.html
  • 6.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ CPUの高速化のトレンド Karl Rupp “40 Years of Microprocessor Trend Data” https://www.karlrupp.net/2015/06/40-years-of-microprocessor-trend-data/
  • 7.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ ドメイン特化型アーキテクチャの必要性 Hennessy and David Patterson Deliver Turing Lecture at ISCA 2018 https://www.acm.org/hennessy-patterson-turing-lecture “A New Golden Age for Computer Architecture: Domain-Specific Hardware/Software Co-Design, Enhanced Security, Open Instruction Sets, and Agile Chip Development,”
  • 8.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ ドメイン特化型 プロセッサ(例) Reference: https://www.barefootnetworks.com/technology/
  • 9.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ P4 ... パケット処理に特化したプログラミング言語 P4 Source Code パケット処理パイプラインの定義 パーサーやテーブル、アクション、など P4 Compiler P4をTarget上で実行可能な形式にコンパイル Target毎に提供される Target (P4対応Dataplane) P4 Dataplane runtime に従いパケットを処理 Hardware: ASIC, NPU, FPGA | Software: CPU “Programming Protocol-Independent Packet Processors” https://p4.org/ ASIC, NPU, FPGA
  • 10.
    A2-03 Interop Tokyo2019 研究事例 Netcope P4コンパイラ+FPGAを用いた CANデータオフロードの試作 5G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
  • 11.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ CANデータ物理量変換(試作) Programmable Switch Match: 車種+フィールドID Action: 値の変換 Match: 車種+フィールドID Action: 値の変換 . . . . . . . . . 変換後の車両情報車両情報 BYTEアライメントではないデータの超高速ストリーム処理
  • 12.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ プラットフォーム選択と実装上の課題 •車種によりデータは変わる •変換ロジックも変わる(かもしれない) 課題 : HDLを用いた高速パケット処理プログラムの難しさ ASIC NPU FPGA スループット ~6.4Tbps ~100Gbps ~200Gbps 計算ロジックの追加(#1) × 〇 ◎ テーブルの拡張性(#2) × △ 〇 (#1) P4 Extern (#2) Memory & Lookup Logic
  • 13.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ 開発フローの比較 P4プログラミング P4プログラムチェック 論理合成 配置配線 タイミング検証 (シュミレーション) Netcope P4 Cloud RTL設計 (Verilog/VHDL) 論理検証 (シュミレーション) 論理合成 配置配線 タイミング検証 (シュミレーション) 一般的な FPGA開発
  • 14.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ P4 プログラム例(port forward) // Standard Headers header_type ethernet_t { fields { dstAddr : 48; srcAddr : 48; etherType : 16; } } header ethernet_t ethernet; header_type ipv4_t { fields { version : 4; ihl : 4; diffserv : 8; totalLen : 16; identification : 16; flags : 3; fragOffset : 13; ttl : 8; protocol : 8; hdrChecksum : 16; srcAddr : 32; dstAddr: 32; } } header ipv4_t ipv4; ヘッダの定義 parser start { return parse_ethernet; } parser parse_ethernet { extract(ethernet); return select(latest.etherType) { ETHERTYPE_IPV4 : parse_ipv4; default: ingress; } } parser parse_ipv4 { extract(ipv4); return select(latest.protocol) { IP_PROTOCOLS_ICMP : parse_icmp; IP_PROTOCOLS_TCP : parse_tcp; IP_PROTOCOLS_UDP : parse_udp; default: ingress; } } parser parse_udp { extract(udp); return select(latest.dstPort) { default: ingress; } } パーサーの定義 action _drop() { drop(); } action _nop() { } action forward(port) { modify_field(metadata.egress_port, port); } table t_fwd { reads { metadata.ingress_port: exact; } actions {forward; _drop;} } control ingress{ apply(t_fwd); } アクション/テーブル/コントロール
  • 15.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ P4 プログラム例(CAN処理ロジックの疑似コード) CANデータをヘッダとして 構造的に定義 header_type can_metadata_t { fields { id_model : 32; id_type : 32; timestamp : 64; } } header can_metadata_t can_metadata; header_type can_base_t { fields { id : 12; len : 4; } } header can_base_t can_base; ... ヘッダの定義 CANデータのID毎にパース するバイト数等を定義 parser parse_udp { extract(udp); return select(latest.dstPort) { UDP_PORT_CAN : parse_can; default: ingress; } } parser parse_can { extract(can_metadata); return parse_can_data; } parser parse_can_data { extract(can_base); return select(can_base.id) { 0x003 : parse_can_data003; 0x005 : parse_can_data005; 0x007 : parse_can_data007; ... } } パーサーの定義 マッチしたCAN_IDに応じデータ 変換するアクションを定義 action convert_dataXXX() { // set fixed fields modify_field(can_cdataXXX.id0, 3); modify_field(can_cdataXXX.sid0, 0); modify_field(can_cdataXXX.len0, 4); // calculate remaining fields modify_field(can_cdataXXX.val0, val0-4); modify_field(can_cdataXXX.val1, val1*2); .... } .... アクション/テーブル/コントロール
  • 16.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ Netcope P4 Cloud Netcope P4 Cloud P4 -> FPGA Firmware コンパイル ウェブサービス(Web Service) ターゲット・プラットフォームの選択
  • 17.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ Netcope P4 Cloud P4チェック結果、合成結果レポートの表示 合成されたファームウェアのダウンロード
  • 18.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ Netcope P4 Cloud
  • 19.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ まとめ CPU高速化の限界(End of Moore’s Law) ドメイン特化型プロセッサ+プログラミング言語 パケット処理に特化したドメイン特化型言語の普及(P4) プラットフォームに合わせた開発環境の普及により、 ユースケースに合わせプラットフォームを選択できる時代に
  • 20.
    A2-03 Interop Tokyo2019 Appendix: Research of In Network Computing 5G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~
  • 21.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ IRTF Computing in the Network (COIN) 性能の向上と新たなネットワーク化されたアプリケーションを実現可能にすべく ネットワーク内コンピューティングの研究を育成・促進する Initial Meeting: IETF 103 Bangkok (2018年11月9日) Wiki: https://trac.ietf.org/trac/irtf/wiki/coin Mailing List: https://www.irtf.org/mailman/listinfo/coin https://trac.ietf.org/trac/irtf/attachment/wiki/coin/coin_ietf103_chair_slides%20-%20Finalv3.pptx
  • 22.
    A2-03 Interop Tokyo20195G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ https://dl.acm.org/citation.cfm?doid=3132747.3132764
  • 23.
    A2-03 Interop Tokyo2019 • In-Network Data-Center Computing • draft-he-coin-datacenter-00 • machine learning, graph analysis, data analytics, map reduce • In Network Computing Enablers for Extended Reality • draft-montpetit-coin-xr-02 • Augmented Reality (AR), Virtual Reality (VR), Extended Reality (XR) • Information Centric Networking (ICN) & NDN • Network Coding, Smart contracts (block chain) • Overview of Edge Data Discovery • draft-mcbride-edge-data-discovery-overview • Named Data Networking (NDN) • Content-Centric Networking (CCN) 5G時代に向けた In Network Computing ~ Netcope社P4 コンパイラを用いた研究事例のご紹介 ~ IRTF Computing in the Network (COIN)