13. FPGA SmartNICデザイン
• ソフトコアプロセッサによるフィルター実行
• ソフトコアプロセッサのプログラムとしてフィル
ター処理を実行
• FPGAの再合成を行うことなく、フィルターを更新
• マルチコアによる性能スケール
• ハードウェアパターンマッチによるフィルタ選択
• パターンマッチによりフィルターを高速に選択
• スケーラブルなハードウェア構成
• TOE数、ネットワークプロセッサ数、NICインタ
フェース数をパラメターとして合成可能とすること
で、様々な性能要件に柔軟に対応
L4
Processor
MAC
TCP stack
Stream IF
Virtual NIC
MAC
TCP stack
MAC
TOE stack
L4
Processor
Network
Processor
Service
Service
Service
Stream IF
Virtual NIC
Service
Service
Service
Filter
selector
Parameterized
Num. of vNICs
Num. of L4 Proc.
Num. of TOEs/IF
Programable Proc.
Socket API
compatible
Load balancing
by lockup
Translates stateful
TCP pkts to stream
data
2022/12/13 ACRi ウェビナー 13
14. Service
SOCKET like
APIs
Container
Service
Userland proxy bridge
Loopback IF
Service
Loopback IF
システムの全体構成
• Userland proxy bridge
• ユーザーアプリのネットワーク要求をハンド
リング
• コントロールプレーンと連携しSmartNICを
制御
• eBPF
• loopback IF部のTCP処理をバイパス
• Virtual NIC
• PCIe SR-IOV virtualizationによって1つの
SmartNICを複数のSmartNICに見せかける
• Network Processors
• L4やL7に関するフィルター処理を実行
• Filter selector
• TOEから到着する複数のセッションを適切に
ネットワークプロセッサに割当
14
FPGA
PCIe SR-IOV engine
Linux
vNIC
Device Driver
Switch
TCP Offload
Engine(TOE)
10G MAC
Network
Processor
Filter selector
Network
Processor
Network
Processor
TCP Offload
Engine(TOE)
10G MAC
Network
Processor
Filter selector
Network
Processor
Network
Processor
controller
2022/12/13 ACRi ウェビナー
Service
SOCKET like
APIs
Container
Service
Userland proxy bridge
Loopback IF
Service
Loopback IF
vNIC
Device Driver
eBPF