Utiliser l Intel DPDK Communauté dpdk.org http://dpdk.org Vincent.Jardin@6WIND.com V8.0. All rights reserved. All brand names, trademarks and copyright information cited in this presentation shall remain the property of its registered owners.
Topics Introduction Performances on Intel architecture Technology Overview V8.0 2
While Network Traffic Grows at 25% Annually. Network Traffic Source: Cisco (Worldwide data center IP traffic) V8.0 3
.CPU Performance Grows at only 14% Annually. Network Traffic CPU performance increases don t sustain network traffic growth CPU Performance V8.0 4
.And Virtualization Increases Traffic within Appliances Aggregate Traffic within Network Appliances Multiple VMs per appliance The "Traffic Gap" Network Traffic CPU Performance V8.0 5
Linux Networking Kernel Doesn't Meet Scalability Needs 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 V8.0 6
Traffic Growth Limits Availability of CPU Resources for Applications Adequate Compute Bandwidth Limited Compute Bandwidth Aggregate Traffic Insufficient Compute Bandwidth VMs or Applications VMs or Applications VMs or Applications Hypervisor or OS Stack Virtual NICs Sockets Hypervisor or OS Stack Hypervisor or OS Stack vswitch Physical NICs Stacks Physical NICs CPU Performance V8.0 7
Fast path Optimizes CPU Utilization Insufficient Compute Bandwidth Maximum Compute Bandwidth VMs or Applications Virtual NICs Sockets minimize CPU cycles used for networking, maximizing CPU resources available for VMs or applications VMs or Applications Hypervisor or OS Stack vswitch Stacks Physical NICs Physical NICs Fast path-based networking stacks IP Forwarding, TCP, IPsec, firewall etc. Accelerated Network I/O Hypervisor or OS Stack Standard Linux Networking Stack Accelerated network I/O PCIe, mempool etc. Standard Linux accelerated by a fast path technology V8.0 8
Topics Introduction Performances on Intel architecture Technology Overview V8.0 9
Ivy Bridge Platform Description 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. V8.0 10
IP Forwarding using http://dpdk.org Test Results 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. V8.0 11
IP Forwarding using http://dpdk.org Test Results 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. V8.0 12
IPsec using http://dpdk.org Test Platform AES128-HMAC-SHA1 for all the measurements 3 measurements: SPD/SAD lookup decypher x n SPD/SAD lookup cypher x n IPsec Software crypto PCIe crypto using Intel Cave Creek route lookup x n route lookup x n IPv4 forwarding PCIe crypto using Cavium Nitrox V8.0 13
Software IPsec Test Results 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 V8.0 14
Software IPsec Test Results 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 V8.0 15
IPsec with PCIe Intel Cave Creek Test Results 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 V8.0 16
IPsec with PCIe Intel Cave Creek Test Results 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 V8.0 17
IPsec with PCIe Cavium Nitrox Test Results IPsec performance using Cavium Nitrox DPDK add-on Up to 20.23 Gbps for 1420 bytes V8.0 18
Using a fast path in a Virtual Environment: Complete Solution Virtual Machine App Linux Virtual Machine VNF Linux Virtual Machine VNF Fast Path 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) Standard vnic vnic netdev Linux vnic PMD Enables high performance communication with the VMs using a vnic PMD Standard vnic vnic PMD Accelerate packet processing in the VMs Virtual Switch OVS acceleration V(x)LAN (NV)GRE Filtering vswitch/vrouter IPsec Other FP protocols Enables high performance communication with the virtual switch using a vnic PMD Supports vnic netdevice if Intel DPDK is not required in the VM Standard pnic Linux IXGBE PMD Mellanox PMD IGB PMD Other pnic PMD Accelerates packet processing thanks to the fast path (NFV, TCP) Hypervisor In addition, communication with standard VMs using standard vnics NICs V8.0 19
OVS Acceleration: Performance 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. V8.0 20
Topics Introduction Performances on Intel architecture Technology Overview V8.0 21
Fast Path Architecture Synchronization module Control Plane Continuous synchronization Local info Kernel slow path Exception packet Local info? Fast path packet Fast Path DPDK V8.0 22
Your Three Options for Obtaining Intel DPDK 1. From Intel As direct Intel customer Latest version of Intel DPDK www.intel/com/go/dpdk Baseline Intel DPDK Code Sync of git tree Sync of git tree Open-Source Community Patches dpdk.org 2. From dpdk.org Latest version of Intel DPDK Community patches Community support Some 6WIND-developed features DPDK plus Selected developed enhancements 3. From 3 rd 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 V8.0 23
6WIND's Enhancements on http://dpdk.org librte_ framework librte_ether (rte_eth_dev_*() ) librte_crypto librte_pmd_multibuffer.so librte_pmd_nitrox.so librte_pmd_quickassist.so librte_cmdline librte_power librte_sched librte_timer librte_pmd_others.so librte_pmd_mlx4.so librte_pmd_vmxnet3.so librte_pmd_virtio.so (1) librte_pmd_virtio (1) librte_pmd_ring librte_pmd_pcap librte_pmd_ixgbe librte_pmd_e1000 librte_mbuf librte_ring librte_malloc librte_mempool librte_eal / linux userland Developed by 6WIND, available from dpdk.org Developed by 6WIND and available from 6WIND V8.0 24
Implement a fast path on http://dpdk.org Fast Path IPv4 / IPv6 Forwarding IPsec IPv4 / IPv6 VLAN GRE Ethernet Bridging, LAG Flow Inspection (BPF) QoS IPv4 / IPv6 Multicast IP Reassembly GTP-U L2TP, PPPoE BRAS TCP / UDP Termination IPv4 / IPv6 Filtering MPLS / VPLS Encapsulation NAT IPsec SVTI Open vswitch (OVS) Acceleration Extended Fast Path (1CP + xfp) RX/TX plug-ins (load balancers, QoS, custom modules) rte_mbuf fast path buf rte_timers timers DPVI fpu RPC librte_ framework librte_ether (rte_eth_dev_*() ) librte_crypto dpdk.org librte_eal / linux userland librte_mempool librte_malloc librte_ring librte_mbuf librte_pmd_e1000 librte_pmd_ixgbe librte_pmd_pcap librte_pmd_ring librte_pmd_virtio (1) librte_pmd_virtio.so (1) librte_pmd_vmxnet3.so librte_pmd_mlx4.so librte_pmd_confid.so librte_timer librte_sched librte_power librte_cmdline librte_pmd_quickassist.so librte_pmd_nitrox.so librte_pmd_multibuffer.so V8.0 25
MERCI fast path = Intel DPDK from http://dpdk.org + a software stack Turbo boost your Linux, your vswitch, your networking solutions V8.0 26