Using DPDK with Go
[Pages:25]Technology Consulting Company Research, Development & Global Standard
Using DPDK with Go
Takanari Hayama taki@igel.co.jp
Technology Consulting Company IGEL Co.,Ltd.
1
BACKGROUND
2017/9/26,27
DPDK Summit Userspace 2017
2
Background
? Lagopus ()
? Open Source OpenFlow 1.3 Software Switch ? DPDK or Raw Socket ?C
? Lagopus2 ()
? OpenSource Software Router (VLAN, IPsec, Match-Action) ? DPDK Only ? Go + C
2017/9/26,27
DPDK Summit Userspace 2017
3
Goals of Lagopus2
? Performance ? Maintainability + Extensibility
2017/9/26,27
DPDK Summit Userspace 2017
4
Goals of Lagopus2
? Performance DPDK + C ? Maintainability + Extensibility Go
2017/9/26,27
DPDK Summit Userspace 2017
5
What is Go?
Open Source Programming Language ? Simple ? Strong Type System ? Statically Typed with Flexibility ? Concurrency ? Garbage Collection ? Compiled Language ? Can use C Library via CGo
2017/9/26,27
DPDK Summit Userspace 2017
6
Go vs C
Complexity Performance Key-Value Data Type Concurrency Memory Management Compiled Language Build System
Go Simple by Design Moderate Yes (Map) Yes (channel and go func) Yes (Garbage Collection) Yes Built-in
C Can Become Complex Very Fast No (requires other library) No (requires other tools) No Yes Your Choice
2017/9/26,27
DPDK Summit Userspace 2017
7
Performance
Goal ? Data Plane shall run fast ? Control Plane can be slow ? Control Plane shall not disturb Data Plane
Design ? Use C + DPDK directly where we need performance ? Let C to focus on packet processing ? Complicated tasks to be offloaded to Go ? Use DPDK Ring for communication between C and Go codes ? Make lock-free where possible
2017/9/26,27
DPDK Summit Userspace 2017
8
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.