Opnfv Summit 2016 (Berlin) DPACC and DPDK solving NFV acceleration

Slides:



Advertisements
Similar presentations
Zhipeng (Howard) Huang
Advertisements

Keith Wiles DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
Accelerating the Path to the Guest
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Active Messages: a Mechanism for Integrated Communication and Computation von Eicken et. al. Brian Kazian CS258 Spring 2008.
1 Last Class: Introduction Operating system = interface between user & architecture Importance of OS OS history: Change is only constant User-level Applications.
DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
dpacc framework discussion data plane
Lesson 9: Creating and Configuring Virtual Networks
1 OS & Computer Architecture Modern OS Functionality (brief review) Architecture Basics Hardware Support for OS Features.
TM Freescale, the Freescale logo, AltiVec, C-5, CodeTest, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of.
CECS 5460 – Assignment 3 Stacey VanderHeiden Güney.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
© 2010 IBM Corporation Plugging the Hypervisor Abstraction Leaks Caused by Virtual Networking Alex Landau, David Hadas, Muli Ben-Yehuda IBM Research –
Virtualization: Not Just For Servers Hollis Blanchard PowerPC kernel hacker.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Intel Research & Development ETA: Experience with an IA processor as a Packet Processing Engine HP Labs Computer Systems Colloquium August 2003 Greg Regnier.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 11: Network Address Translation for IPv4 Routing And Switching.
Full and Para Virtualization
Networking Components WILLIAM NELSON LTEC HUB  Device that operated on Layer 1 of the OSI stack.  All I/O flows out all other ports besides the.
Virtio-IPsec-LA PoC Implementation
DPACC Management Aspects
Technical Overview of Microsoft’s NetDMA Architecture Rade Trimceski Program Manager Windows Networking & Devices Microsoft Corporation.
Figure A: From Openstack Nomad. Figure B: From Gap on OpenStack ① ① ④ ④.
DPACC Metadata Revised 2016/4/6. Table of Contents Motivation Information Elements Data representation Convergence discussion for IFA004.
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
An open source user space fast path TCP/IP stack and more…
Scope/Goals of TLDK What is the scope of TLDK? High performance TCP/UDP Testing via CSIT needs to have a set of unit tests for validation Centralized or.
Only Use FD.io VPP to Achieve high performance service function chaining Yi Intel.
TLDK Transport Layer Development Kit
New Approach to OVS Datapath Performance
TLDK overview Konstantin Ananyev 05/08/2016.
NFV Compute Acceleration APIs and Evaluation
Containers as a Service with Docker to Extend an Open Platform
BESS: A Virtual Switch Tailored for NFV
6WIND MWC IPsec Demo Scalable Virtual IPsec Aggregation with DPDK for Road Warriors and Branch Offices Changed original subtitle. Original subtitle:
DPDK API and Virtual Infrastructure
Instructor Materials Chapter 9: NAT for IPv4
DPDK overview / APIs Keith Wiles July 11, 2016.
Routing and Switching Essentials v6.0
Nov, 2015 Howard Huang, Huawei Julien Zhang, ZTE
Networking overview Sujata
Virtio Inline Accelerator
DPACC Management Aspects
Routing and Switching Essentials v6.0
Network Virtualization
Instructor Materials Chapter 9: NAT for IPv4
Woojoong Kim Dept. of CSE, POSTECH
Virtio Keith Wiles July 11, 2016.
Open vSwitch HW offload over DPDK
12/26/2018 5:07 AM Leap forward with fast, agile & trusted solutions from Intel & Microsoft* Eman Yarlagadda (for Christine McMonigal) Hybrid Cloud – Product.
Ideas for adding FPGA Accelerators to DPDK
Virtio/Vhost Status Quo and Near-term Plan
Integrating DPDK/SPDK with storage application
Enabling TSO in OvS-DPDK
By Vipin Varghese Application Engineer (NCSD)
Reprogrammable packet processing pipeline
Windows Virtual PC / Hyper-V
A Scalable Approach to Virtual Switching
Chapter 11: Network Address Translation for IPv4
Update Summary of DPACC docs
Latest Update on Gap Analysis of Openstack for DPACC
Latest Update on Gap Analysis of Openstack for DPACC
Update Summary of DPACC docs
Latest Update DPACC Use-cases
Virtio-ipsec F.F. Ozog (6WIND) v1 (2015/05/29).
Platform Performance Acceleration
Latest Update DPACC Use-cases
Accelerator Management g-API’s
Figure 3-2 VIM-NFVI acceleration management architecture
Presentation transcript:

Opnfv Summit 2016 (Berlin) DPACC and DPDK solving NFV acceleration Keith Wiles June 2016

Legal Disclaimer General Disclaimer: © Copyright 2016 Intel Corporation. All rights reserved. Intel, the Intel logo, Intel Inside, the Intel Inside logo, Intel. Experience What’s Inside are trademarks of Intel. Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others. Technology Disclaimer: Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system configuration. No computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more at [intel.com]. Performance Disclaimers: Cost reduction scenarios described are intended as examples of how a given Intel- based product, in the specified circumstances and configurations, may affect future costs and provide cost savings. Circumstances will vary. Intel does not guarantee any costs or cost reduction. Results have been estimated or simulated using internal Intel analysis or architecture simulation or modeling, and provided to you for informational purposes. Any differences in your system hardware, software or configuration may affect your actual performance.

DPACC and DPDK overview DPACC design overview with DPDK Adding VPP from FD.IO to DPDK to enhance NFV What is TLDK (Transport Layer Development Kit)? Enhancements to DPDK to support DPACC Summary

DPDK Simple overview

DPDK Overview DPDK Framework Legacy DPDK DPDK API Traffic Gens Pktgen, T-Rex, Moongen, … vSwitch OVS, Lagopus, … DPDK example apps AES-NI VPP Applications Event based program models Threading Models lthreads, … Video Apps EAL MALLOC MBUF MEMPOOL RING TIMER Core Libraries KNI POWER IVSHMEM Platform LPM Classification ACL Classify e1000 ixgbe bonding af_pkt i40e fm10k Packet Access (PMD) ETHDEV xenvirt enic ring METER SCHED QoS cxgbe vmxnet3 virtio PIPELINE mlx4 memnic others HASH Utilities IP Frag CMDLINE JOBSTAT KVARGS REORDER TABLE Legacy DPDK Future accelerators Crypto Programmable Classifier/Parser HW 3rd Party GPU/FPGA SoC PMD External mempool manager SoC HW SOC model VNF Apps DPDK Acceleration Enhancements DPDK Framework Network Stacks libUNS, mTCP, SeaStar, libuinet, TLDK, … Compression HW/SW IPSec DPI Hyperscan Proxy Apps, …

sio-backend + vHost-user DPACC and DPDK design Focus on one design as a basic high level view: Software Acceleration Layer is the software to hardware abstraction layer Software Acceleration Layer makes possible additional services which can be controlled by the orchestration layer sio-backend + vHost-user is normally in the SAL or SRL layer, but shown here to illustrate vHost in the host. A SAL in the guest allows for the best performance selection Direct access to hardware acceleration via SR-IOV, SOC-specific interface or other pass-though Able to do software acceleration in the guest SRL or HW vSwitch adds VM2VM routing or switching of packets A SAL in the host gives scalability for non-accelerated VMs and/or native applications Application SAL (DPDK) guest Crypto sio hio sio-backend + vHost-user SRL(OVS) SAL(DPDK) host Crypto hio Accelerator HW vSwitch/Crypto device

DPACC: Acceleration Layer for Host (Hypervisor) SAL: Software Acceleration Layer Provides an abstraction between SW and HW, plus able to support multiple devices at the same time sio-backend: backend of paravirtualized drivers vHost-user: User space based VirtIO interface optional for VM   host access s-API: APIs for utilizing an AC (APIs from the AC) g-drivers: General driver for each device type Implemented in software or the frontend to the hardware (may be different for different acceleration functions) hio: Hardware I/O interface Non-virtualized, accessed only by host SAL AC: Software/Hardware Acceleration Core (DPDK) SRL: Software Routing Layer (OVS) AML: Acceleration Management Layer VM 0 VM 1 VM 2 VM 3 VM 4 sio-backend (optional vHost-user) Software Routing Layer (SRL) Acceleration Core (DPDK) s-API Software Acceleration Layer (SAL) Acceleration Management Layer Buffer and memory mgnt, rings/queues, ingress/egress scheduling, tasks, pipeline, … g-drivers SW-crypto or drivers for HW-crypto hio

VPP with DPDK Quick overview

DPDK enhancements for VPP DPDK contains HW and SW crypto acceleration support Add HW/SW crypto support to VPP as a new or modified graph node Adding DPDK crypto support to VPP can transparently support a range of hardware and software solutions DPDK contains many accelerators and accelerated software for a number of system architectures, which can be utilized by VPP transparently

sio-backend + vHost-user DPACC and VPP design Application Software Routing Layer (SRL) can be VPP (Vector Packet Processing) code for a FastPath design of L2/L3 forwarding VPP can also be in the guess for location fastpath support VPP can replace the vSwitch at the SRL layer and provide added functionality to the guess or host SAL (DPDK) guest Crypto sio hio sio-backend + vHost-user SRL(VPP FastPath) SAL(DPDK) host Crypto hio Accelerator HW vSwitch/Crypto device

What do we need to do? Need to address the patches in VPP to DPDK and reduce the amount of changes required for VPP support Modify DPDK to pick up some of the enhancements in VPP One area is around how data is referenced. VPP uses an 32 bit index based on cache line and DPDK uses a pointer, which could be 64 bits Adding more space to some critical structures in DPDK, but we have to understand the performance effect to the system Move the RTE_MBUF ‘next’ pointer to the first cache line, but this effects performance by having to move other data to the second cache line Better support of DPDK devices in VPP can improve the performance and portability of VPP across many different architectures

TLDK (Transport Layer Development Kit) Quick overview

TLDK (Transport Layer Development Kit) TLDK is an open source FD.IO project (https://wiki.fd.io/view/TLDK) The TLDK project will implement a set of libraries for L4 protocol processing (UDP, TCP etc.) and VPP graph nodes, plugins, etc Using those libraries to implement a host stack TLDK works on standalone DPDK or integrated into VPP to provide termination support Committers are: Konstantin Ananyev Keith Wiles Ed Warnicke (IRC nick: edwarnicke) The first source code push by Konstantin a few weeks ago git clone https://gerrit.fd.io/r/tldk Creating a UDP only design with clean scaling and performance About 10 Mpps for 64 byte frames of terminated UDP traffic (Still more tuning needed)

TLDK (Transport Layer Development Kit) High Level View A set of libraries to handle packets needing support for UDP/TCP/… which is TLDK Physical Layer: Ports and other devices like crypto, compression, … I/O Layer: DPDK is contained here as it provides the I/O abstraction to the physical layer Fastpath Layer: The fastpath layer is today VPP and its graph nodes handling moving packets to application or back to the I/O layer after some type of processing Application Layer: The application has a VPP graph node to send/receive packets to/from the application layer The application and/or fastpath layer uses TLDK library APIs Application Layer Transport Layer Fastpath Layer I/O Layer Physical Layer

TLDK Uses case #1 with DPDK Handles packet I/O and protocol processing of packets Application sets up the UDP/TCP protocol contexts and then calls I/O routines in TLDK to start processing packets Physical Layer: Ports and other devices like crypto, compression, … DPDK: DPDK is contained here as it provides the I/O abstraction to the physical layer Application Layer TLDK DPDK Physical Layer Control or non-TLDK pkts TLDK pkts

TLDK Uses case #2 with VPP Handles packet I/O and protocol processing of packets Application sets up the UDP/TCP protocol contexts and then calls I/O routines in TLDK to start processing packets VPP Fastpath Using VPP as the first layer for packet processing before packets are sent to the application layer Physical Layer: Ports and other devices like crypto, compression, … DPDK: DPDK is contained here as it provides the I/O abstraction to the physical layer Application Layer TLDK VPP DPDK Physical Layer Control or non-TLDK pkts TLDK pkts

Classification for DPDK WIP on adding classification support to DPDK, plus unifying the current APIs

ETHDEV and PMD layering Phase II ETHDEV to PMD API requirements: Reuse existing APIs if possible with little to no change If a new API replaces and old API, the old API will be deprecated over time or never TBD Add new APIs only when required The ETHDEV to PMD layer interface needs to have as little change as possible, but common across all PMDs Weather Classifier API is on top of ETHDEV as a library or a new DPDK API along side ETHDEV is TBD P4 is shown here to state that P4 is above DPDK API and possible also above Classifier API TBD P4 ETHDEV Classifier API HW Supported? No SW Handlers Yes HW Handlers PMD PMD PMD PMD Version 0.4

VirtIo Update on Intel’s work on Virtio

Lookaside VirtIO-crypto Intel has begun to define the specification for virtIO-crypto processing from the VNF to the host The specification currently focuses on the definition of symmetric and asymmetric algorithms Specification shall be protocol agnostic but will accelerate compute intensive algorithms Shall offer asynchronous and synchronous API invocation Intel shall work with the QEMU mailing list to gain acceptance of the specification Request flow: VNF application makes crypto requests using the g-API The SAL translates between the g-API and the virtIO-crypto interface The virtIO-crypto front end driver places requests on a Vring The BE virtIO driver removes the request from the Vring and calls the accelerator driver to submit the request to the accelerator Guest VNF Crypto Application g-API SAL VirtIO-crypto FE driver virtio-crypto interface Host virtio-crypto BE driver SAL Accelerator Host Driver Acceleration hardware

DPDK Enhancements Current and future enhancements

Enhancements to DPDK New features: External Memory manager support in DPDK 16.11 Future support: Event based support for DPDK applications (TBD) New Virtio support for crypto devices vSwitch using VPP Fastpath, plus we get a lot of extra features Add FPGA and GPU support to DPDK for more accelerators Add compression support to DPDK for storage and other needs

Summary Adding VPP to DPACC will enhance the overall design with lots of extra protocol support in the fastpath Reducing the delta between DPDK and VPP to better support FD.io Adding termination of UDP and TCP support via TLDK to DPDK/VPP will increase native application performance Enhancing Virtio for more accelerators like Crypto adds better support for NFV applications with better performance