A Look at Intels Dataplane Development Kit Dominik Scholz Chair for - - PowerPoint PPT Presentation

a look at intel s dataplane development kit
SMART_READER_LITE
LIVE PREVIEW

A Look at Intels Dataplane Development Kit Dominik Scholz Chair for - - PowerPoint PPT Presentation

A Look at Intels Dataplane Development Kit Dominik Scholz Chair for Network Architectures and Services Department for Computer Science Technische Universit at M unchen June 13, 2014 Dominik Scholz: A Look at Intels Dataplane


slide-1
SLIDE 1

A Look at Intel’s Dataplane Development Kit

Dominik Scholz

Chair for Network Architectures and Services Department for Computer Science Technische Universit¨ at M¨ unchen

June 13, 2014

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 1

slide-2
SLIDE 2

Outline

1

Packet Processing using Commodity Hardware

2

Intel’s Dataplane Development Kit

3

Comparison: Intel’s DPDK, netmap, PF RING DNA

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 2

slide-3
SLIDE 3

Motivation

Why use commodity hardware and do packet processing in software? Advantages: Flexibility: software can be modified Increased performance and reduced costs of (multicore) CPU’s and NIC’s over the last years Open source But: existing dataplane software not designed for high-speed packet processing (up to 10 Gbit/s) → specialized frameworks implement different techniques to achieve significant performance speed-ups

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 3

slide-4
SLIDE 4

Use Case: Linux Network Stack

Ingress Network Board Egress Network Board Memory Operating System Buffer Buffer 1 9 Routing Table 2 3 4 5 7 8 10 11 Kernel Mode User Mode Applikation 6 7 Applikation Dominik Scholz: A Look at Intel’s Dataplane Development Kit 4

slide-5
SLIDE 5

Performance Limitating Factors

Bottleneck CPU Bottleneck memory:

1 per packet allocation and deallocation 2 multiple copy operations per packet 3 complex sk buff structure

Parallelism: spinlocks (active waiting) Context switches Conclusion: standard dataplane only for general purpose

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 5

slide-6
SLIDE 6

Performance Limitating Factors

Bottleneck CPU Bottleneck memory:

1 per packet allocation and deallocation 2 multiple copy operations per packet 3 complex sk buff structure

Parallelism: spinlocks (active waiting) Context switches Conclusion: standard dataplane only for general purpose

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 5

slide-7
SLIDE 7

Performance Limitating Factors

Bottleneck CPU Bottleneck memory:

1 per packet allocation and deallocation 2 multiple copy operations per packet 3 complex sk buff structure

Parallelism: spinlocks (active waiting) Context switches Conclusion: standard dataplane only for general purpose

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 5

slide-8
SLIDE 8

Outline

1

Packet Processing using Commodity Hardware

2

Intel’s Dataplane Development Kit

3

Comparison: Intel’s DPDK, netmap, PF RING DNA

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 6

slide-9
SLIDE 9

Intel DPDK

Set of libraries to accelerate basic dataplane functions Released in 2012 Completely replaces the network stack Intel architecture-based: supporting Intel Atom - Intel Xeon Open Source BSD-licensed: free and unsupported standalone or commercial solution

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 7

slide-10
SLIDE 10

DPDK Overview

Runtime environment with low

  • verhead

Dataplane libraries run in userspace

1 Memory management 2 Buffer management 3 Custom driver 4 ...

Environment Abstraction Layer (EAL) ”Easy to use.” - Intel

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 8

slide-11
SLIDE 11

Queue Manager

Fixed-sized ring implemented as table of pointer to any object Properties: FIFO Lockless (no active waiting) Supports multi consumer/producer enqueue/dequeue scenarios Supports bunch-processing of objects

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 9

slide-12
SLIDE 12

Memory Manager

mempool structure: Pool of fixed-sized objects Uses a ring to store free objects Per core cache (optional)

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 10

slide-13
SLIDE 13

Buffer Manager

mbuf structure used to store network packets Created before runtime ”Allocation”: take a free mbuf from a mempool ”Deallocation”: put the mbuf back to the mempool Small size to fit in one cache-line (→ mbuf-chaining) mbuf contains:

1 Metadata: control information, e.g. packet length 2 Pointer to next mbuf 3 Packet data: header and payload

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 11

slide-14
SLIDE 14

How to use the DPDK - EAL

The DPDK creates libraries by creating the EAL: Hides environment specifics Provides standard programming interface Optimized for the available hardware But does not provide: Layer-3 forwarding Firewalls ...any layer 3 or upper protocol →Developer has to port his application to the DPDK

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 12

slide-15
SLIDE 15

Outline

1

Packet Processing using Commodity Hardware

2

Intel’s Dataplane Development Kit

3

Comparison: Intel’s DPDK, netmap, PF RING DNA

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 13

slide-16
SLIDE 16

netmap

A framework for raw packet I/O, developed by Luigi Rizzo (Universit´ a di Pisa) Feature: works with broad range of soft- and hardware Linux and FreeBSD Intel 10GbE and 1GbE adapter Intel, RealTek, nVidia Implemented techniques: Memory pre-allocation and re-use Memory mapping Batch processing Parallel direct paths (assign CPU core to receiving queue)

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 14

slide-17
SLIDE 17

PF RING Direct NIC Access

A framework to capture packets, developed by ntop. Feature: zero-copy PF RING DNA maps NIC memory and registers to userland → only one copy operation per packet But: weakness to user misbehaviour (system-crashes) Implemented techniques: Memory pre-allocation and re-use Memory mapping (zero-copy) Parallel direct paths

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 15

slide-18
SLIDE 18

Summary

Intel DPDK netmap PF RING DNA Memory Pre-allocation ✓ ✓ ✓ Memory Mapping ✓ ✓ ✓ Batch Processing ✓ ✓ ✗ Parallel Direct Paths ✓ ✓ ✓ Open Source ✓ ✓ ✓ ”Safety” ✓ ✓ ✗ Test results show: different frameworks exceed in different use cases [2][4] up to 10 times faster than the linux network stack

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 16

slide-19
SLIDE 19

Sources

Intel DPDK Programmers Guide. January 2014. Intel DPDK Packet Processing on Intel Architecture. Presentation slides, 2012. Luigi Rizzo netmap: a novel framework for fast packet I/O in: Proceedings of the 2012 USENIX Annual Technical Conference, 2012. Jos´ e Luis Garc´ ıa-Dorado et al. High-Performance Network Traffic Processing Systems Using Commodity Hardware in: Data Traffic Monitoring and Analysis, Springer Verlag, 2013. www.dpdk.org Last visited: 06.06.2014

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 17

slide-20
SLIDE 20

Thank you for your attention! Do you have any questions?

Dominik Scholz: A Look at Intel’s Dataplane Development Kit 18