際際滷

際際滷Share a Scribd company logo
Offloading BPF
Implementation to
FPGA-NIC
したいねって
[FPGA Startup]
(鞭原S) Hiroki Shirokura @slankdev
http://blog.slankdev.net
徭失B初
? 脅坪の寄僥の尖垢僥何 B3
& Twitter : @slankdev
& Facebook : hirokishirokura
& Blog : http://blog.slankdev.net
? IPA Security Camp 2015, 2016 tutor
? Cybozu Labs Youth 5,6th
? L4參和のネットワ`クvSが挫き
? ハ`ドウェア兜伉宀 (FPGA秘Tしたばっかです)
徭失B初
? つくった
& パケット盾裂のフレ`ムワ`ク
& ネットワ`クスタック
& CPUのエミュレ`タ (階叟議)
? つくってない (書瘁やる嚠協)
& NIC
& CPU
& デバイスドライバ
Cybozu Labs Youth
? 繁のソフトウェア冩梢_kプロジェクトを氏芙が鮅する
崙業
? 定g103嵐劼鯢蕨泙縫汽ぅ椒Ε困X潜署を屶Bう
? すごい繁にお署をBいながらf薦してもらえる
書さんとのvS
? 2015定
& セキュリティキャンプ畠忽寄氏で竃氏う(歌紗宀とv)
& arduinoのGPIOでパケットの殪添鼎鰈る峺Г鯤椶韻
? 2016定
& OSCでOに竃婢させていただく
& セキュリティキャンプ畠忽寄氏 (チュ`タ`とv)
& セキュリティミニキャンプ (チュ`タ`とv)
& arduinoのGPIOでパケットの殪添鼎鰈る峺Г鯤擦
これは匯桑宮徨といっていいのでは
恍晩の匚
AM 11:00
W   仝あしたFPGA Start UPだ々
    悶{音措で媒zむ。。。
PM 10:30
W   仝採にもやってない々
    仝プロセッサとかNICとかつくりたかったな々
    仝できるとこまでやろう々
AM 1:00
W   仝とりあえず碧とdissasemblerと
     エミュレ`タのベ`スはできた、おやすみ々
云晩
AM 9:00
B   仝チュンチュン。々
W   仝おはよう々
AM 11:00
W   仝できた々
PM 2:00
W   仝LTY創できてね`や々
書さん仝しろくら埴、徭失B初。々
W   仝トイレの侭とかはしいです 
勣するにまだFPGA
は竃てきてないです。。
ごめんなさい
なにをしたいかというと
? BPF(Berkeley Packet Filter)
& in-kernelで咾パケットフィルタ
& 64bit RISC, Register Machine
& フィルタのアセンブリをいてフィルタにm喘
? これをNICの除くにオフロ`ディングしたい
? FPGAの竃桑だ
BPFのh苧
User APP
BPF
Filter Function
Buffer
User APP
link-level-drvr
User
Kernel
Network
Filter Function
Buffer
link-level-drvr
BPF 愔
O協辛嬬
書指やりたいこと
書指g廾する何蛍
BPF
Filter Function
Buffer
User APP
link-level-drvr
User
Kernel
Network
BPF 仟
O協辛嬬
User APP
Buffer
O協辛嬬
link-level-drvr
Network
FPGA NIC
With Filter
モチベ`ション
壼いNW廾崔をつくるとき
OS坪何のNWサブシステムのg廾はなんかよくわからない
(☆NWサブシステム吭翌はもっとわからない...)
いろんなとこでchecksum麻してたり、
フラグメンテ`ションI尖がいろんなとこでされてたり
NWI尖の侭
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のh苧
TCPのパケットをフィルタリングするプログラム
これでは尖盾できない
わかりやすくh苧すると
これ(パケット)を...
これ(プログラム)に奮わせれば...
粥界界艶沿岳されたり...
檎艶韓顎壊艶されて篤虹されるパケットフィルタ
なにをしなければいけないか
? ISAの碧Qめる
? dissas恬る
? エミュレ`タ恬る
? FPGAでCPUをg廾する
? NICの除くで咾す
なにをしたか
? [done] SAの碧Qめる
? [done] dissas恬る
? [done] エミュレ`タ恬る
? FPGAでCPUをg廾する
? NICの除くで咾す
CPUのエミュレ`タをg廾して、咾ところまでやった
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

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