utiliserl’intel® dpdk –communautédpdk.org …media.frnog.org/frnog_22/frnog_22-1.pdfor os...
TRANSCRIPT
V8.0 | ©6WIND 2013. All rights reserved. All brand names, trademarks and copyright information cited in this presentation shall remain the property of its registered owners.
Utiliser l’Intel® DPDK – Communauté dpdk.org
http://dpdk.org
V8.0 | 3©6WIND 2013
Network Traffic
Source: Cisco
(Worldwide data center IP traffic)
While Network Traffic Grows at 25% Annually….
V8.0 | 4©6WIND 2013
….CPU Performance Grows at only 14%
Annually….
CPU Performance
CPU performance
increases don’t sustain
network traffic growth
Network Traffic
V8.0 | 5©6WIND 2013
….And Virtualization Increases Traffic within
Appliances
Aggregate Traffic withinNetwork Appliances
Multiple VMs per appliance
CPU Performance
Network Traffic
The "Traffic Gap"
V8.0 | 6©6WIND 2013
Performance of Linux kernel
stack doesn't scale linearly with
number of cores
Packet processing within Linux
kernel can't close the network
traffic gap
Linux Networking Kernel Doesn't Meet
Scalability Needs
V8.0 | 7©6WIND 2013
Traffic Growth Limits Availability of CPU
Resources for Applications
Physical NICs
Physical NICs
vSwitch Stacks
VirtualNICs
Sockets
CPU Performance
VMs or Applications
Hypervisor or OS Stack
VMs or Applications
Hypervisor or OS Stack
VMs or Applications
Hypervisor or OS Stack
AdequateCompute
Bandwidth
LimitedCompute
Bandwidth
InsufficientCompute
Bandwidth
Aggregate Traffic
V8.0 | 8©6WIND 2013
Fast path Optimizes CPU Utilization
Hypervisor or OS Stack
Physical NICs
Physical NICs
vSwitch Stacks
VirtualNICs
Sockets
VMs or Applications
InsufficientCompute
Bandwidth
VMs or Applications
MaximumCompute
Bandwidth
Hypervisor or OS Stack
minimize CPU cycles used for
networking, maximizing CPU
resources available for VMs
or applications
Fast path-based networking stacks
• IP Forwarding, TCP, IPsec, firewall etc.
Standard Linux Networking StackStandard Linux accelerated by a fast
path technology
Accelerated Network I/O
Accelerated network I/O
• PCIe, mempool etc.
V8.0 | 10©6WIND 2013
Intel Crown Pass platform
Dual Ivy Bridge processors (each with 12 cores)
3.5GHz CPU speed
32GB RAM
22 x 10G interfaces (327Mpps)
Traffic generator
Up to 24 x 10Gbps interfaces using daisy chain
Up to 357 Mpps.
Ivy Bridge
Platform Description
V8.0 | 11©6WIND 2013
Fast path IP forwarding
performance
14.24 Mpps per core
24 Mpps per core with l2switch
Up to 313.31 Mpps with 22 cores
Performance scales linearly with
the number of cores configured to
run the fast path.
Performance is independent of
frame size.
IP Forwarding using http://dpdk.org
Test Results
V8.0 | 12©6WIND 2013
Fast path IP forwarding
performance
14.24 Mpps per core
24 Mpps per core with l2switch
Up to 313.31 Mpps with 22 cores
Performance scales linearly with
the number of cores configured to
run the fast path.
Performance is independent of
frame size.
IP Forwarding using http://dpdk.org
Test Results
V8.0 | 13©6WIND 2013
IPsec using http://dpdk.org
Test Platform
SPD/SAD lookup
decypherx n
SPD/SAD lookupcypher
x n
routelookup
x n
routelookup
x n IPv4 forwarding
IPsec
AES128-HMAC-SHA1 for all the measurements
3 measurements:
• Software crypto
• PCIe crypto using Intel Cave Creek
• PCIe crypto using Cavium Nitrox
V8.0 | 14©6WIND 2013
IPsec performance
5.39 Gbps per core for 1420B
packets
Up to 73.01 Gbps using 14 cores /
28 threads
Performance scales linearly with
the number of cores configured to
run the fast path
Software IPsec
Test Results
V8.0 | 15©6WIND 2013
IPsec performance using DPDK
AES-NI/AVX osftware crypto
1.81 Gbps per core for 64B packets
5.39 Gbps per core for 1420B
packets
Up to 73.01 Gbps using 14 cores /
28 threads
Performance scales linearly with
the number of cores configured to
run the fast path
Software IPsec
Test Results
V8.0 | 16©6WIND 2013
IPsec using Quick Assist DPDK
addon
3.52 Gbps per engine for 1420B
packets
Up to 40 Gbps (platform limit) using
16 engines
Performance scales linearly with
the number of engines configured
to process IPsec transformation
IPsec with PCIe Intel Cave Creek
Test Results
V8.0 | 17©6WIND 2013
IPsec using Quick Assist DPDK
addon
13.56 Gbps with 16 engines for 64B
packets
Up to 40 Gbps (platform limit) with
16 engines for 1420B packets
IPsec with PCIe Intel Cave Creek
Test Results
V8.0 | 18©6WIND 2013
IPsec performance using Cavium
Nitrox DPDK add-on
Up to 20.23 Gbps for 1420 bytes
IPsec with PCIe Cavium Nitrox
Test Results
V8.0 | 19©6WIND 2013
Accelerate packet processing in the hypervisor
Leverages PMDs for physical NICs
Accelerates virtual switching / routing thanks to the fast
path (OVS, V(x)LAN, (NV)GRE + other protocols)
Enables high performance communication with the VMs
using a vNIC PMD
Accelerate packet processing in the VMs
Enables high performance communication with the
virtual switch using a vNIC PMD
Supports vNIC netdevice if Intel® DPDK is not required
in the VM
Accelerates packet processing thanks to the fast path
(NFV, TCP)
In addition, communication with standard VMs using
standard vNICs
Using a fast path in a Virtual Environment:
Complete Solution
Hypervisor
Linux
NICs
Virtual Machine
Linux
vNIC netdev
IXGBEPMD
Virtual Machine
Linux
Standard vNIC
Standard vNIC
IGBPMD
MellanoxPMD
Other pNICPMD
vSwitch/vRouter
OVSacceleration
V(x)LAN(NV)GRE
IPsecFilteringOther FPprotocols
Virtual Machine
Linux vNIC PMD
Fast Path
vNIC PMD
Virtual Switch
VNFVNFApp
Standard pNIC
V8.0 | 20©6WIND 2013
OVS L2 switching performance
6.8 Mpps per core
Up to 67.8 Mpps using 10 cores (20
threads)
Performance scales linearly with
the number of cores configured to
run the fast path.
Performance is independent of
frame size.
OVS Acceleration: Performance
V8.0 | 22©6WIND 2013
Kernelslow path
ControlPlane
FastPath
Fast Path Architecture
?Localinfo
Localinfo
Fast path packet
Continuoussynchronization
Exception packet
Synchronizationmodule
DPDK
V8.0 | 23©6WIND 2013
Your Three Options for Obtaining Intel® DPDK
DPDK plus
Selected developed
enhancements
3. From 3rd parties• Maintained version
• Latest version of DPDK
• Feature and performance enhancements
• dpdk.org patches
• Full technical support and maintenance
• Optionally integrated with a fast path stack
Sync of
git tree
Open-Source
Community
Patches
2. From dpdk.org• Latest version of Intel DPDK
• Community patches
• Community support
• Some 6WIND-developed features
dpdk.orgSync of git tree
1. From Intel• As direct Intel customer
• Latest version of Intel® DPDK
• www.intel/com/go/dpdk
Baseline Intel®
DPDK Code
V8.0 | 24©6WIND 2013
Developed by 6WIND and available from
6WIND
Developed by 6WIND and available from
6WIND
Developed by 6WIND, available
from dpdk.org
Developed by 6WIND, available
from dpdk.org
6WIND's Enhancements on http://dpdk.org
librte
_e
al/ lin
ux
us
erla
nd
librte_ framework
librte
_m
em
po
ol
librte
_m
allo
c
librte
_rin
g
librte
_m
bu
f
librte_ether (rte_eth_dev_*() )
librte
_p
md
_e1
00
0
librte
_p
md
_ix
gb
e
librte
_p
md
_p
ca
p
librte
_p
md
_rin
g
librte
_p
md
_virtio
(1)
librte
_p
md
_m
lx4
.so
librte
_p
md
_virtio
.so
(1)
librte
_p
md
_vm
xn
et3
.so
librte
_p
md
_o
the
rs.s
o
librte
_tim
er
librte
_s
ch
ed
librte
_p
ow
er
librte
_c
md
line
librte_crypto
librte
_p
md
_q
uic
ka
ssis
t.so
librte
_p
md
_n
itrox
.so
librte
_p
md
_m
ultib
uffe
r.so
V8.0 | 25©6WIND 2013
Implement a fast path on http://dpdk.org
dpdk.org
librte
_e
al/ lin
ux
us
erla
nd
librte_ framework
librte
_m
em
po
ol
librte
_m
allo
c
librte
_rin
g
librte
_m
bu
f
librte_ether (rte_eth_dev_*() )
librte
_p
md
_e1
00
0
librte
_p
md
_ix
gb
e
librte
_p
md
_p
ca
p
librte
_p
md
_rin
g
librte
_p
md
_virtio
(1)
librte
_p
md
_m
lx4
.so
librte
_p
md
_virtio
.so
(1)
librte
_p
md
_vm
xn
et3
.so
librte
_p
md
_C
ON
FID
.so
librte
_tim
er
librte
_s
ch
ed
librte
_p
ow
er
librte
_c
md
line
librte_crypto
librte
_p
md
_q
uic
ka
ssis
t.so
librte
_p
md
_n
itrox
.so
librte
_p
md
_m
ultib
uffe
r.so
Fast Path
IPv4 / IPv6 Filtering
MPLS / VPLS Encapsulation
NAT IPsec SVTIOpen vSwitch
(OVS) AccelerationExtended Fast
Path (1CP + xFP)
QoSIPv4 / IPv6 Multicast
IP Reassembly GTP-UL2TP, PPPoE
BRASTCP / UDP
Termination
IPv4 / IPv6 Forwarding
IPsec IPv4 / IPv6 VLAN GREEthernet Bridging,
LAGFlow Inspection
(BPF)
RX/TX plug-ins (load balancers, QoS, custom modules)
rte_mbuf fast path buf rte_timers timers DPVI fpu RPC
V8.0 | 26©6WIND 2013
fast path =
Intel® DPDK from http://dpdk.org
+ a software stack
Turbo boost your Linux, your vSwitch, your networking solutions
MERCI