SlideShare a Scribd company logo
Opnfv Summit 2016
(Berlin)
DPACC and DPDK solving
NFV acceleration
Keith Wiles
June 2016
Network Platforms
Group
2
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.
Network Platforms
Group
3
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
Network Platforms
Group
4
DPDK
Simple overview
Network Platforms
Group
5
DPDK Overview
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
IVSHME
M
Platfor
m
LPM
Classifica
tion
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
3rd
Party
SoC
PMD
External
mempool
manager
SoC
HW
SOC model
VNF Apps
DPDK Acceleration Enhancements
DPDK Framework
Network Stacks
libUNS, mTCP,
SeaStar, libuinet,
TLDK, …
Compressio
n
3rd
Party
HW/SW
IPSec
DPI
Hypersca
n
Proxy
Apps, …
Network Platforms
Group
6
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
Accelerator
SAL(DPDK)
Crypto
Application
SAL (DPDK)
sio hio
SRL(OVS)
Crypto
hio
HW vSwitch/Crypto
host
guest
device
sio-backend + vHost-user
Network Platforms
Group
7
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
Acceleration Core (DPDK)
hio
sio-backend (optional vHost-user)
s-API
Acceleration
Management
Layer
Software
Acceleration
Layer
(SAL)
Software Routing Layer (SRL)
Buffer and memory
mgnt, rings/queues,
ingress/egress
scheduling, tasks,
pipeline, …
g-drivers
SW-crypto or drivers
for HW-crypto
VM 0 VM 2
VM 1 VM 3 VM 4
Network Platforms
Group
8
VPP with DPDK
Quick overview
Network Platforms
Group
9
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
Network Platforms
Group
10
DPACC and VPP design
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
Accelerator
SAL(DPDK)
Crypto
Application
SAL (DPDK)
sio hio
SRL(VPP FastPath)
Crypto
hio
HW vSwitch/Crypto
host
guest
device
sio-backend + vHost-user
Network Platforms
Group
11
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
Network Platforms
Group
12
TLDK (Transport Layer
Development Kit)
Quick overview
Network Platforms
Group
13
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)
Network Platforms
Group
TLDK (Transport Layer Development Kit) High Level View
I/O Layer
Fastpath Layer
Application Layer
Transport
Layer
Physical Layer
Transport Layer:
• 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
Network Platforms
Group
TLDK Uses case #1 with DPDK
DPDK
Physical Layer
Application Layer
TLDK:
• 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
TLDK
Control or
non-TLDK pkts
TLDK pkts
Network Platforms
Group
VPP
TLDK Uses case #2 with VPP
DPDK
Physical Layer
Application Layer
TLDK:
• 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
TLDK
Control or
non-TLDK pkts
TLDK pkts
Network Platforms
Group
17
Classification for DPDK
WIP on adding classification support to DPDK, plus unifying the current APIs
Network Platforms
Group
18
HW Handlers
Phase II
ETHDEV and PMD layering
PMD PMD
PMD
PMD
ETHDEV
SW
Handlers
HW
Supporte
d?
No
Yes
Classifier API
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
Version 0.4
Network Platforms
Group
19
VirtIo
Update on Intel’s work on Virtio
Network Platforms
Group
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
20
Guest
SAL
Acceleration hardware
VNF
Crypto Application
g-API
Host
virtio-crypto
BE driver
VirtIO-crypto FE driver
virtio-crypto interface
Accelerator Host Driver
SAL
Network Platforms
Group
21
DPDK Enhancements
Current and future enhancements
Network Platforms
Group
22
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
Network Platforms
Group
23
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
dpdk acceleration techniques ncdşs şdcnş

More Related Content

PPTX
TLDK - FD.io Sept 2016
PPSX
FD.IO Vector Packet Processing
PPSX
FD.io Vector Packet Processing (VPP)
PPTX
High Performance Networking Leveraging the DPDK and Growing Community
PDF
Making Networking Apps Scream on Windows with DPDK
PDF
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
PDF
5 pipeline arch_rationale
PDF
DPDK Summit 2015 - Intel - Keith Wiles
TLDK - FD.io Sept 2016
FD.IO Vector Packet Processing
FD.io Vector Packet Processing (VPP)
High Performance Networking Leveraging the DPDK and Growing Community
Making Networking Apps Scream on Windows with DPDK
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
5 pipeline arch_rationale
DPDK Summit 2015 - Intel - Keith Wiles

Similar to dpdk acceleration techniques ncdşs şdcnş (20)

PDF
DPDK In Depth
PDF
DPDK: Multi Architecture High Performance Packet Processing
PPTX
G rpc talk with intel (3)
PDF
DPDK & Layer 4 Packet Processing
PDF
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
PDF
Using VPP and SRIO-V with Clear Containers
PDF
DPDK Integration: A Product's Journey - Roger B. Melton
PDF
Scaling the Container Dataplane
PPTX
Introduction to DPDK
PDF
Summit 16: How to Compose a New OPNFV Solution Stack?
PDF
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
PDF
Learn more about the tremendous value Open Data Plane brings to NFV
PDF
OPNFV: Platform Performance Acceleration
PDF
Introduction to VIP with PCI Express Technology
PDF
Devconf2017 - Can VMs networking benefit from DPDK
PDF
3 additional dpdk_theory(1)
PDF
DPDK Summit 2015 - Intro - Tim O'Driscoll
PDF
What are latest new features that DPDK brings into 2018?
PPT
Windows Filtering Platform And Winsock Kernel
PPTX
Intel DPDK - ALTEN Calsoft Lab's Expertise
DPDK In Depth
DPDK: Multi Architecture High Performance Packet Processing
G rpc talk with intel (3)
DPDK & Layer 4 Packet Processing
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Using VPP and SRIO-V with Clear Containers
DPDK Integration: A Product's Journey - Roger B. Melton
Scaling the Container Dataplane
Introduction to DPDK
Summit 16: How to Compose a New OPNFV Solution Stack?
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
Learn more about the tremendous value Open Data Plane brings to NFV
OPNFV: Platform Performance Acceleration
Introduction to VIP with PCI Express Technology
Devconf2017 - Can VMs networking benefit from DPDK
3 additional dpdk_theory(1)
DPDK Summit 2015 - Intro - Tim O'Driscoll
What are latest new features that DPDK brings into 2018?
Windows Filtering Platform And Winsock Kernel
Intel DPDK - ALTEN Calsoft Lab's Expertise
Ad

Recently uploaded (20)

PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PPT
Mechanical Engineering MATERIALS Selection
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PDF
Digital Logic Computer Design lecture notes
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
Welding lecture in detail for understanding
PDF
Well-logging-methods_new................
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
additive manufacturing of ss316l using mig welding
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PPT
Project quality management in manufacturing
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
Mechanical Engineering MATERIALS Selection
Automation-in-Manufacturing-Chapter-Introduction.pdf
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
CYBER-CRIMES AND SECURITY A guide to understanding
bas. eng. economics group 4 presentation 1.pptx
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
R24 SURVEYING LAB MANUAL for civil enggi
Digital Logic Computer Design lecture notes
Foundation to blockchain - A guide to Blockchain Tech
Internet of Things (IOT) - A guide to understanding
Welding lecture in detail for understanding
Well-logging-methods_new................
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
additive manufacturing of ss316l using mig welding
Model Code of Practice - Construction Work - 21102022 .pdf
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
UNIT-1 - COAL BASED THERMAL POWER PLANTS
Project quality management in manufacturing
Ad

dpdk acceleration techniques ncdşs şdcnş

  • 1. Opnfv Summit 2016 (Berlin) DPACC and DPDK solving NFV acceleration Keith Wiles June 2016
  • 2. Network Platforms Group 2 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.
  • 3. Network Platforms Group 3 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
  • 5. Network Platforms Group 5 DPDK Overview 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 IVSHME M Platfor m LPM Classifica tion 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 3rd Party SoC PMD External mempool manager SoC HW SOC model VNF Apps DPDK Acceleration Enhancements DPDK Framework Network Stacks libUNS, mTCP, SeaStar, libuinet, TLDK, … Compressio n 3rd Party HW/SW IPSec DPI Hypersca n Proxy Apps, …
  • 6. Network Platforms Group 6 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 Accelerator SAL(DPDK) Crypto Application SAL (DPDK) sio hio SRL(OVS) Crypto hio HW vSwitch/Crypto host guest device sio-backend + vHost-user
  • 7. Network Platforms Group 7 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 Acceleration Core (DPDK) hio sio-backend (optional vHost-user) s-API Acceleration Management Layer Software Acceleration Layer (SAL) Software Routing Layer (SRL) Buffer and memory mgnt, rings/queues, ingress/egress scheduling, tasks, pipeline, … g-drivers SW-crypto or drivers for HW-crypto VM 0 VM 2 VM 1 VM 3 VM 4
  • 9. Network Platforms Group 9 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
  • 10. Network Platforms Group 10 DPACC and VPP design 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 Accelerator SAL(DPDK) Crypto Application SAL (DPDK) sio hio SRL(VPP FastPath) Crypto hio HW vSwitch/Crypto host guest device sio-backend + vHost-user
  • 11. Network Platforms Group 11 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
  • 12. Network Platforms Group 12 TLDK (Transport Layer Development Kit) Quick overview
  • 13. Network Platforms Group 13 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)
  • 14. Network Platforms Group TLDK (Transport Layer Development Kit) High Level View I/O Layer Fastpath Layer Application Layer Transport Layer Physical Layer Transport Layer: • 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
  • 15. Network Platforms Group TLDK Uses case #1 with DPDK DPDK Physical Layer Application Layer TLDK: • 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 TLDK Control or non-TLDK pkts TLDK pkts
  • 16. Network Platforms Group VPP TLDK Uses case #2 with VPP DPDK Physical Layer Application Layer TLDK: • 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 TLDK Control or non-TLDK pkts TLDK pkts
  • 17. Network Platforms Group 17 Classification for DPDK WIP on adding classification support to DPDK, plus unifying the current APIs
  • 18. Network Platforms Group 18 HW Handlers Phase II ETHDEV and PMD layering PMD PMD PMD PMD ETHDEV SW Handlers HW Supporte d? No Yes Classifier API 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 Version 0.4
  • 20. Network Platforms Group 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 20 Guest SAL Acceleration hardware VNF Crypto Application g-API Host virtio-crypto BE driver VirtIO-crypto FE driver virtio-crypto interface Accelerator Host Driver SAL
  • 22. Network Platforms Group 22 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
  • 23. Network Platforms Group 23 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