SlideShare a Scribd company logo
Offloading BPF
Implementation to
FPGA-NIC
したいねって話
[FPGA Startup]
(受付係) Hiroki Shirokura @slankdev
http://blog.slankdev.net
自己紹介
▣ 都内の大学の理工学部 B3
□ Twitter : @slankdev
□ Facebook : hirokishirokura
□ Blog : http://blog.slankdev.net
▣ IPA Security Camp 2015, 2016 tutor
▣ Cybozu Labs Youth 5,6th
▣ L4以下のネットワーク関係が好き
▣ ハードウェア初心者 (FPGA入門したばっかです)
自己紹介
▣ つくった
□ パケット解析のフレームワーク
□ ネットワークスタック
□ CPUのエミュレータ (超簡易的)
▣ つくってない (今後やる予定)
□ NIC
□ CPU
□ デバイスドライバ
Cybozu Labs Youth
▣ 個人のソフトウェア研究開発プロジェクトを会社が応援する
制度
▣ 年間103万円を上限にサイボウズが奨励金を支払う
▣ すごい人にお金を貰いながら協力してもらえる
今岡さんとの関係
▣ 2015年
□ セキュリティキャンプ全国大会で出会う(参加者と講師)
□ arduinoのGPIOでパケットの電気信号を作る指導を受ける
▣ 2016年
□ OSCで隣に出展させていただく
□ セキュリティキャンプ全国大会 (チューターと講師)
□ セキュリティミニキャンプ (チューターと講師)
□ arduinoのGPIOでパケットの電気信号を作る指導を手伝う
これは一番弟子といっていいのでは
昨日の夜
AM 11:00
僕   「あしたFPGA Start UPだ」
    体調不良で寝込む。。。
PM 10:30
僕   「何にもやってない」
    「プロセッサとかNICとかつくりたかったな」
    「できるとこまでやろう」
AM 1:00
僕   「とりあえず仕様とdissasemblerと
     エミュレータのベースはできた、おやすみ」
本日
AM 9:00
鳥   「チュンチュン。」
僕   「おはよう」
AM 11:00
僕   「できた」
PM 2:00
僕   「LT資料できてねーや」
今岡さん「しろくら君、自己紹介。」
僕   「トイレの場所とかは詳しいです!」
要するにまだFPGA
は出てきてないです。。
ごめんなさい
なにをしたいかというと
▣ BPF(Berkeley Packet Filter)
□ in-kernelで動くパケットフィルタ
□ 64bit RISC, Register Machine
□ フィルタのアセンブリを書いてフィルタに適用
▣ これをNICの近くにオフローディングしたい
▣ FPGAの出番だ!
BPFの説明
User APP
BPF
Filter Function
Buffer
User APP
link-level-drvr
User
Kernel
Network
Filter Function
Buffer
link-level-drvr
BPF 従来
設定可能
今回やりたいこと
今回実装する部分
BPF
Filter Function
Buffer
User APP
link-level-drvr
User
Kernel
Network
BPF 新
設定可能
User APP
Buffer
設定可能
link-level-drvr
Network
FPGA NIC
With Filter
モチベーション
早いNW装置をつくるとき
OS内部のNWサブシステムの実装はなんかよくわからない
(※NWサブシステム意外はもっとわからない...)
いろんなとこでchecksum計算してたり、
フラグメンテーション処理がいろんなとこでされてたり
NW処理の場所
User
Kernel
Network
Device Driver
Network Sub-Systems
Socket/BPF
NIC
Application Application
PMD
DPDK
Checksu
m Offload
Segmentaio
n Offload
***
Offload
Device Driver
Network
Sub-Systems
任意のAPI
Application
NIC
CPU
NIC
ここ
BPFの説明
TCPのパケットをフィルタリングするプログラム
これでは理解できない
わかりやすく説明すると
これ(パケット)を...
これ(プログラム)に食わせれば...
Acceptされたり...
Refuseされて破棄されるパケットフィルタ
なにをしなければいけないか
▣ ISAの仕様決める
▣ dissas作る
▣ エミュレータ作る
▣ FPGAでCPUを実装する
▣ NICの近くで動かす
なにをしたか
▣ [done] SAの仕様決める
▣ [done] dissas作る
▣ [done] エミュレータ作る
▣ FPGAでCPUを実装する
▣ NICの近くで動かす
CPUのエミュレータを実装して、動くところまでやった
https://github.com/slankdev/bpf
まとめ
第二回があれば完成させておきます
参考文献
▣ CPUのエミュレータの作り方
運営の内田さん著 →
https://book.mynavi.jp/ec/
products/detail/id=41347
▣ BPFのasmの仕様について詳しい
http://jakou.byethost6.com/
pktcap.html?i=1
▣ The BSD PacketFilter: A New
ArchitectureforUser-levelPacketCapture
http://www.vodun.org/papers/net-papers/van_
jacobson_the_bpf_packet_filter.pdf

More Related Content

PPTX
VyOSの開発とか運用の話
PDF
.NET Gadgeteer の紹介
PDF
パケットキャプチャでインフラ主導のデバッグ環境を作る
PDF
L2延伸を利用したクラウド移行とクラウド活用術
PDF
ニフティクラウドでのVyOS利用事例
PDF
.NET Micro Framework の基礎
PDF
エンジニアコミュニティ支援制度「NiFcLounge」のご紹介
PDF
クラウド上のシステム監視 入門編~システムを作ったその先に~
VyOSの開発とか運用の話
.NET Gadgeteer の紹介
パケットキャプチャでインフラ主導のデバッグ環境を作る
L2延伸を利用したクラウド移行とクラウド活用術
ニフティクラウドでのVyOS利用事例
.NET Micro Framework の基礎
エンジニアコミュニティ支援制度「NiFcLounge」のご紹介
クラウド上のシステム監視 入門編~システムを作ったその先に~

What's hot (6)

PDF
Chainerインストール
PDF
ISPネットワーク運用で覗いてるもの
PDF
マスタリングTCP/IP ニフクラ編
PPTX
Windows10 IoT CoreとBLE
PDF
Career - design, adaption and diversity - for EMC I&D event
Chainerインストール
ISPネットワーク運用で覗いてるもの
マスタリングTCP/IP ニフクラ編
Windows10 IoT CoreとBLE
Career - design, adaption and diversity - for EMC I&D event
Ad

Viewers also liked (16)

PDF
High Performance Networking with DPDK & Multi/Many Core
PPTX
サイボウズ・ラボユース中間報告会
PDF
OSC 2016 Hokkaido セミナー資料
PDF
Seccamp 2016 チューター成果報告
PDF
DAVIX - Data Analysis and Visualization Linux
PDF
Supercharging Visualization with Data Mining
PDF
Synthesijer fpgax 20150201
PDF
FPGA+Synthesijerでヴォコーダを作ってみた
PDF
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
PDF
サイボウズ・ラボユース成果報告会
PDF
企業向けクラウドサービスの開発・運用 悩みどころのパターンと対策
PDF
FPGAX6_hayashi
PPTX
サイボウズ・ラボ成果発表会
PDF
開発者を支える生産性向上チームの取り組み -CI, Browser Test, Tools and Infrastructure-
PDF
DPDKを用いたネットワークスタック,高性能通信基盤開発
PDF
Kubernetes in 30 minutes (2017/03/10)
High Performance Networking with DPDK & Multi/Many Core
サイボウズ・ラボユース中間報告会
OSC 2016 Hokkaido セミナー資料
Seccamp 2016 チューター成果報告
DAVIX - Data Analysis and Visualization Linux
Supercharging Visualization with Data Mining
Synthesijer fpgax 20150201
FPGA+Synthesijerでヴォコーダを作ってみた
FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6
サイボウズ・ラボユース成果報告会
企業向けクラウドサービスの開発・運用 悩みどころのパターンと対策
FPGAX6_hayashi
サイボウズ・ラボ成果発表会
開発者を支える生産性向上チームの取り組み -CI, Browser Test, Tools and Infrastructure-
DPDKを用いたネットワークスタック,高性能通信基盤開発
Kubernetes in 30 minutes (2017/03/10)
Ad

Similar to Offloading BPF Implementation to FPGA-NIC したいねって話 (14)

PPT
20140310 fpgax
PDF
SDN Japan: ovs-hw
PDF
Reconf_201409
PDF
Reconf 201506
PDF
ICD/CPSY 201412
PPTX
Androidとfpgaを高速fifo通信させちゃう
PDF
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
PDF
Net bsd advent calendar 2015 bpf
PDF
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
PPTX
Myoshimi extreme
PPTX
研究者のための Python による FPGA 入門
PDF
Pynq祭り資料
PPTX
Software forwarding path
PDF
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御
20140310 fpgax
SDN Japan: ovs-hw
Reconf_201409
Reconf 201506
ICD/CPSY 201412
Androidとfpgaを高速fifo通信させちゃう
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Net bsd advent calendar 2015 bpf
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
Myoshimi extreme
研究者のための Python による FPGA 入門
Pynq祭り資料
Software forwarding path
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御

More from slankdev (9)

PDF
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
PDF
Kernel vm13lt
PDF
OSC2017Hokkaido
PPTX
Seurity Camp Award 2016
PDF
OSC2016 Tokyo/Spring LT
PDF
OSC2016 Tokyo/Spring セミナー資料
PDF
LibPGEN 1st Step Guide
PDF
libpgenでパケット操作
PPTX
ARPSpoofing攻撃によるMITM攻撃
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
Kernel vm13lt
OSC2017Hokkaido
Seurity Camp Award 2016
OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring セミナー資料
LibPGEN 1st Step Guide
libpgenでパケット操作
ARPSpoofing攻撃によるMITM攻撃

Offloading BPF Implementation to FPGA-NIC したいねって話