SlideShare a Scribd company logo
1 of 30
Download to read offline
FutureEnhancementstoDPDK
FrameworkKeith Wiles, Principal Engineer, Intel Corporation
Classify
QoS
Core
Libraries Platform
PreservingApplicationInvestmentwithDPDK
• Open-source (BSD license) community project (5+ years,
version 2.1 latest) -- http://dpdk.org/
‒ All code is Open Source including the device drivers or PMDs (Poll Mode
Drivers)
‒ Optimized Linux User Space Library focused on data plane
implementation on general purpose processors
‒ Has been Very stable project with ABI versioning for APIs
‒ Multi-architecture: x86, IBM, Freescale, EZChip(Tilera) support
• Encompasses legacy platforms and newer acceleration
platforms
• DPDK has a large application install base and included in
Linux Distro’s CentOS, Ubuntu, Red Hat, …(Fedora)
‒ Adopted by standard OS distributions (FreeBSD, Linux) and many platform
frameworks including VirtIO/Vhost and OpenvSwitch
• Scalable solution to meet different NFV use cases
• Hardware acceleration complemented by software
implementations for consistent set of services to applications
• Supports a large number of features like lockless rings, hash
keys, ACL, Crypto, Match Action, buffer management and
many others
• Has a large number of example applications and growing
• Supports any number of devices at the same time, using a 2
layer device model
Packet Access
(PMD – Native & Virtual)
EAL
MALLOC
MBUF
MEMPOOL
RING
TIMER
KNI
POWER
IVSHMEM
LPM
EXACT
MATCH
ACL
E1000
IXGBE
VMXNET3
IGB
I40e
VIRTIO
ETHDEV
XENVIRT
PCAP
RING
METER
SCHED
Linux User Space Application
User Space
KNI IGB_UIOVF_IO
2
DataPlaneDevelopmentKitArchitecture
* Other names and brands may be claimed as the property of others.
Linux Kernel
User Space
KNI IGB_UIO
EAL
MALLOC
MBUF
MEMPOOL
RING
TIMER
Core Libraries
KNI
POWER
IVSHMEM
Other/Misc
rte_hash librte_aclE1000, IGB
IXGBE
VMXNET3
VIRTIO
ETHDEV Packet I/O
XENVIRT
PCAP
Mellanox*
Cisco VIC*
Broadcom*
i40e
FM10K
Chelsio*
Exact
Match API
Flow
Director
ACL API
Load
Balance
rte_distrib
RSS
Flow
Director
RRC HW
acceleration
QoS API
rte_meter
rte_sched
Island
Cove
Crypto API
SW crypto
QAT
crypto
Common Function APIs
Drivers
FRMWORK
Inline
IA-64-32 PowerPPC MIPS ARM
Arch Ports
CMDLINE
JOBSTAT
PIPELINE
BONDING
OTHER
PMDs
KVARGS
4
DPDK-AEWhat is Acceleration Enhancements for DPDK?
5
DPDK–WhatdoestheFutureHold?
Here are a few items we are thinking about and need help
• DPDK-AE (Acceleration Enhancements)
• What type of acceleration device types?
• Crypto via hardware and software acceleration
• DPI engine
• Compression
• Match Action and Flow Director APIs
• Adding support for SoC hardware
• hardware memory management and event handling
• Network Stacks, light weight threading and other applications
• Focus on VirtIO performance and enhancements
• Support other language bindings
6
DPDK–cryptoAPIOverview of proposed Crypto API for DPDK
7
DPDK–CryptousingHardwareandSoftware
Doing hardware and/or software crypto has some good advantages
• Hardware crypto can handle the large packets
• Software crypto can handle the smaller packets
Added advantages are:
• better performance over a range of packet sizes
• parallel execution with software and hardware crypto
• Abstracts the packet handling making it transparent to the application
CryptoDeviceConfiguration(RFC)
uint8_t dev_id; /* Crypto Device identifier */
/* Crypto Device Configuration */
struct rte_cryptodev_config dev_conf = {
.socket_id = SOCKET_ID_ANY,
.nb_queue_pairs = RTE_CRYPTODEV_DEFAULT_NB_QUEUE_PAIRS,
.session_mp = {
.nb_objs = RTE_CRYPTODEV_DEFAULT_NB_SESSIONS,
.cache_size = RTE_CRYPTODEV_DEFAULT_CACHE_SIZE
}
};
/* Configure device */
rte_cryptodev_configure(dev_id, &dev_config);
/* Crypto Device Queue Pair Configuration */
struct rte_cryptodev_qp_conf qp_conf = {
.nb_descriptors = RTE_CRYPTODEV_DEFAULT_NB_DECS_PER_QUEUE_PAIR
}
/* Configure device queue pairs */
uint16_t qp_id;
for (qp_id = 0; qp_id < RTE_CRYPTODEV_DEFAULT_NB_QUEUE_PAIRS; qp_id++) {
rte_cryptodev_queue_pair_setup(dev_id, qp_id, &qp_conf, rte_cryptodev_socket_id(dev_id)));
}
CryptoSessionManagement(RFC)
uint8_t aes128_cbc_key[CIPHER_KEY_LENGTH_AES128_CBC] = { … }; /* AES128 cipher key */
uint8_t hmac_sha256_key[HMAC_KEY_LENGTH_SHA256] = { … }; /* HMAC SHA256 authentication key */
/* Cipher Parameters */
struct rte_crypto_cipher_params cipher_params = {
.algo = RTE_CRYPTO_SYM_CIPHER_AES_CBC,
.op = RTE_CRYPTO_SYM_CIPHER_OP_ENCRYPT,
.key = {
.data = aes128_cbc_key,
.length = CIPHER_KEY_LENGTH_AES128_CBC
}
}
/* Authentication Parameters */
struct rte_crypto_hash_params hash_params = {
.op = RTE_CRYPTO_SYM_HASH_OP_DIGEST_GENERATE,
.algo = RTE_CRYPTO_SYM_HASH_SHA256_HMAC,
.auth_key = {
.data = hmac_sha256_key,
.length = HMAC_KEY_LENGTH_SHA256
},
.digest_length = DIGEST_BYTE_LENGTH_SHA256
}
/* Session Creation */
struct rte_cryptodev_session *crypto_session = rte_cryptodev_session_create(dev_id,
&cipher_params, &hash_params, RTE_CRYPTO_SYM_OPCHAIN_CIPHER_HASH);
CryptoOperation(RFC)struct rte_mbuf *m;
/* Create a crypto op mempool */
struct rte_mempool *crypto_op_pool = rte_crypto_op_pool_create(“crypto_op_mempool",
NB_CRYPTO_OPS, CRYPTO_OP_CACHE_SIZE, rte_socket_id());
/* Generate Crypto op data structure */
struct rte_crypto_op_data *crypto_op = rte_crypto_op_alloc(crypto_op_pool);
/* Set crypto operation data parameters, in this example, we are appending the generated digest to the
end of the mbuf data buffer and prepending the IV to the start of mbuf data buffer, these parameter do
not need to be within the mbuf */
rte_crypto_op_attach_session(crypto_op, crypto_session);
crypto_op->digest.data = (uint8_t *)rte_pktmbuf_append(m, DIGEST_BYTE_LENGTH_SHA224);
crypto_op->digest.length = DIGEST_BYTE_LENGTH_SHA224;
crypto_op->iv.data = (uint8_t *)rte_pktmbuf_prepend(m, CIPHER_IV_LENGTH_AES128_CBC);
crypto_op->iv.length = CIPHER_IV_LENGTH_AES_CBC;
crypto_op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC;
crypto_op->data.to_cipher.length = DATA_LENGTH;
crypto_op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC;
crypto_op->data.to_hash.length = DATA_LENGTH;
/* Attach the completed crypto op data structure to the mbuf */
rte_pktmbuf_attach_crypto_op(m, crypto_op);
CryptoPacketProcessing(RFC)
uint8_t dev_id; /* Crypto device identifier */
uint16_t qp_id; /* Queue pair identifier */
struct rte_mbuf *pkts[] = { m, … }; /* Array of mbufs for crypto processing */
unsigned nb_pkts = sizeof(pkts)/sizeof(*pkts); /* Number of valid mbufs in pkts array */
/* Enqueue mbufs for crypto processing on the specified crypto device queue */
unsigned pkts_enqueued = rte_cryptodev_enqueue_burst(dev_id, qp_id, pkts, nb_pkts);
/* Create an array of mbuf pointers to receive processed packets */
struct rte_mbuf *ppkts[MAX_BURST_SIZE];
/* Dequeue all available processed mbufs up to MAX_BURST_SIZE on the specified crypto device queue */
unsigned pkts_dequeued = rte_cryptodev_dequeue_burst(dev_id, qp_id, ppkts, MAX_BURST_SIZE);
12
DPDK–FlowclassificationProposed flow classification support in DPDK
13
DPDK–FlowClassificationwithHardware
DPDK uses Flow Director APIs to manage flows
Match-Action API is a superset of APIs for flow classification
• The code is open source at https://github.com/match-interface
Match-Action API has a much large set of APIs to handle more flow
classification needs, which we need to expose in the future
The Match-Action API is used under the Flow Director API for backward
compatibility with current applications, while extending the applications
to new hardware or software designs
14
DPDK–FlowClassificationwithHardware
DPDK uses Flow Director APIs to manage flows
The flows are currently managed in NIC devices, but we can extend FDIR
APIs to support other hardware devices using Match-Action
Later we can continue to extend FDIR API to allow for more complex
configurations and hardware designs using the full set of APIs with
Match-Action APIs
15
DPDK–SoCsupportProposed suggestion to add SoC support to DPDK
DPDK-AE(DPDK-AccelerationEnhancements)
DPDK – Architecture
Focus to Date DPDK-AE (Acceleration Enhancements)
DPDK API
Crypto
Device
DPI
Device
Match-Action
Device
Future
Device
AES-NI
QAT
Hyperscan RRC
SoCs*
* We can adapt the SoC SDK via a DPDK PMD to maintain the highest performance
SoC
PMD
external
memory
manager
Network Stacks
Storage and file
systems
Pktgen
Traffic generator
Open vSwitch
(OVS)
Light weight
threads
Future
features
Event based
program model
EAL
MALLOC
MBUF
MEMPOOL
RING
TIMER
Core
Libraries
KNI
POWER
IVSHMEM
Platform
LPM
Classificatio
n
ACL
Classify
e1000
ixgbe
bonding
af_pkt
i40e
fm10k
Packet Access (PMD)
ETHDEV
xenvirt
enic
ring
METER
SCHED
QoS
cxgbe
vmxnet3 virtio
3rd Party
3rd Party
PIPELINE
mlx4 memnic
others
HASH
Utilities
IP Frag
CMDLINE
JOBSTAT
KVARGS
REORDER
TABLE 3rd Party
NBT
Simple SOC model
1
Example
Applications
VNF
Applications
DPDKExtendingAcceleratorsviaSoChardware
DPDK – Architecture
DPDK-AE (Acceleration Enhancements)
DPDK – API
Software
Hardware
SoC SDK
SoC
PMD
external
memory
manager 3rd Party
VNF Application
Crypto
Device
Simple model for SOC
integration
Ethernet
Device
SoC PMD: Poll Mode driver model for SoC devices
Provides a clean integration of SoC via a PMD in DPDK
• Hardware abstraction in DPDK is at the PMD layer
• DPDK-API: A generic API extended to support SoCs
– DPDK provides a two layer device model to support many
devices at the same time/binary, which can include SoC
devices
– Need to enhance DPDK with some SoC specific needs or
features to support SoC hardware
• Non-PCI configuration
• External memory manager(s) (for hardware based memory)
• Event based programming model
• SoC-PMD: Poll Mode Driver model for SoC
– Allows SoC SDK’s to remain private
• Supports ARM and MIPS DPDK ports to utilize these
SoC designs
Supports
other device
types
18
DPDK–ChangestoSupportSoChardware
Enabling SoC hardware in DPDK requires a few enhancements
• Need a way to configure these non-PCIe devices
• Add support to DPDK mempool’s to allow for external or hardware memory
managers
• Add support for event based applications
• e.g. Open Event Machine or others to utilize an event based programming model
Enlisting input for other enhancements to DPDK for SoC devices
19
DPDK–NetworkStackWe need a stack the only question is how many?
20
DPDK–NetworkStacksandothers
DPDK needs to add network stack support for applications
• One network stack will not fill everyone’s needs today
• DPDK needs a clean API for multiple network stacks
Some examples for network stack types
• Network stack with very high performance with UDP and TCP
• Low latency network protocol support for High Frequency Trading
• IPv6 support and SCTP are a few protocols needed
• Light weight threading model for more then one thread per core to manage
applications built using a multi-threaded design
What else needs to be supported?
21
DPDK–NetworkStack(s)
•Need a standalone Socket solution
• For linked and non-linked applications
• Need to support native applications using LD_PRELOAD
•Integration with the host platform network stack
• Does the design appear as one stack or multiple stacks?
• Need to support integration with the host stack
• Netlink messages can be used to update the DPDK stack
• Synchronize all stacks for routing and application data
• Must be able to route packets to the local host stack from the
accelerated stacks
• Exception path or normal traffic like management
22
DPDK–NetworkStack(s)
How can we build these network stack?
• FreeBSD based stacks allow for up to date protocols
• Purpose built stacks are also needed for a given use case
• High performance and/or low latency stack are needed
•One option is to maintain up to date protocols/stacks
• We can pull FreeBSD code from FreeBSD on demand then apply
patches to allow us to build FreeBSD in DPDK style
• Support as much of the protocols in FreeBSD as possible should
be a goal IMO
• Support File systems types using DPDK as a fast disk device
23
DPDK–VirtIOImprove performance and enhancements
24
DPDK–VirtIO
•Virtio is one of the primary interfaces for VM   Host
• Needs to be enhanced to support more devices
• Need to enhance performance of VirtIO
•SR-IOV is good for some cases in a VM
• But does not scale to many VMs or containers
• Very good in the host users pace to gain direct access to the
devices
•Not all devices support SR-IOV and VirtIO is the only
solution we have today as a standard
25
DPDK–LanguagebindingsAdding other language bindings
26
DPDK–languagesuggestions
DPDK needs other language bindings other than ‘C’
• Go from Google : golang.org
• Go concurrency mechanisms make it easy to write programs and get the most out of
multicore machines
• Swift will become Open Source later this year
• Swift is easy to program and has some nice performance
• Java is also another good language
• These language bindings can add cleaner application development
• Adding object oriented language designs
• Give better support for multicore programming for the developer
• Cleaner and faster development
• These compiled languages could provide very good performance with
some trade offs
27
DPDK–ScriptingLanguages
Interpreted languages like Lua (lua.org) or Python are
reasonable for configuration
• Lua is very simple to support DPDK bindings to the language
• Python is object oriented, but harder/bigger to integrate
Using a scripting language can enhance configuration and
writing applications like network protocol testers where
performance is not the main requirement
What other language bindings would be reasonable?
28
DPDK–Summary
• We need to add more acceleration supported hardware
• Review and comment on the Crypto RFC
• Lets contribute other architecture types like ARM to DPDK.org
• Adding SoC enhancements to DPDK for more devices
• Lets move forward by adding more network stacks
• Add support to enhance native applications
• Lets add other language bindings to enhance configuration and
application designs
• Lets collaborate on these and more…
Buildingacommonplatform
foreverythingandeverywhere!
29
Thankyou
30

More Related Content

What's hot

DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...Jim St. Leger
 
DPDK Summit 2015 - Intro - Tim O'Driscoll
DPDK Summit 2015 - Intro - Tim O'DriscollDPDK Summit 2015 - Intro - Tim O'Driscoll
DPDK Summit 2015 - Intro - Tim O'DriscollJim St. Leger
 
DPDK Summit 2015 - RIFT.io - Tim Mortsolf
DPDK Summit 2015 - RIFT.io - Tim MortsolfDPDK Summit 2015 - RIFT.io - Tim Mortsolf
DPDK Summit 2015 - RIFT.io - Tim MortsolfJim St. Leger
 
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
DPDK summit 2015: It's kind of fun  to do the impossible with DPDKDPDK summit 2015: It's kind of fun  to do the impossible with DPDK
DPDK summit 2015: It's kind of fun to do the impossible with DPDKLagopus SDN/OpenFlow switch
 
Netsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvNetsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvIntel
 
Symmetric Crypto for DPDK - Declan Doherty
Symmetric Crypto for DPDK - Declan DohertySymmetric Crypto for DPDK - Declan Doherty
Symmetric Crypto for DPDK - Declan Dohertyharryvanhaaren
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)Kirill Tsym
 
High Performance Networking Leveraging the DPDK and Growing Community
High Performance Networking Leveraging the DPDK and Growing CommunityHigh Performance Networking Leveraging the DPDK and Growing Community
High Performance Networking Leveraging the DPDK and Growing Community6WIND
 
1 intro to_dpdk_and_hw
1 intro to_dpdk_and_hw1 intro to_dpdk_and_hw
1 intro to_dpdk_and_hwvideos
 
DPDK Summit 2015 - Sprint - Arun Rajagopal
DPDK Summit 2015 - Sprint - Arun RajagopalDPDK Summit 2015 - Sprint - Arun Rajagopal
DPDK Summit 2015 - Sprint - Arun RajagopalJim St. Leger
 
DPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al SandersDPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al SandersJim St. Leger
 
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...Jim St. Leger
 
Disruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on LinuxDisruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on LinuxNaoto MATSUMOTO
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Andriy Berestovskyy
 
DPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii TkachukDPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii TkachukIntel
 
Accelerate Service Function Chaining Vertical Solution with DPDK
Accelerate Service Function Chaining Vertical Solution with DPDKAccelerate Service Function Chaining Vertical Solution with DPDK
Accelerate Service Function Chaining Vertical Solution with DPDKOPNFV
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabMichelle Holley
 
Scaling the Container Dataplane
Scaling the Container Dataplane Scaling the Container Dataplane
Scaling the Container Dataplane Michelle Holley
 

What's hot (20)

DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
DPDK Summit - 08 Sept 2014 - Futurewei - Jun Xu - Revisit the IP Stack in Lin...
 
DPDK Summit 2015 - Intro - Tim O'Driscoll
DPDK Summit 2015 - Intro - Tim O'DriscollDPDK Summit 2015 - Intro - Tim O'Driscoll
DPDK Summit 2015 - Intro - Tim O'Driscoll
 
DPDK Summit 2015 - RIFT.io - Tim Mortsolf
DPDK Summit 2015 - RIFT.io - Tim MortsolfDPDK Summit 2015 - RIFT.io - Tim Mortsolf
DPDK Summit 2015 - RIFT.io - Tim Mortsolf
 
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
DPDK summit 2015: It's kind of fun  to do the impossible with DPDKDPDK summit 2015: It's kind of fun  to do the impossible with DPDK
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
 
Netsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvNetsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfv
 
Symmetric Crypto for DPDK - Declan Doherty
Symmetric Crypto for DPDK - Declan DohertySymmetric Crypto for DPDK - Declan Doherty
Symmetric Crypto for DPDK - Declan Doherty
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
 
High Performance Networking Leveraging the DPDK and Growing Community
High Performance Networking Leveraging the DPDK and Growing CommunityHigh Performance Networking Leveraging the DPDK and Growing Community
High Performance Networking Leveraging the DPDK and Growing Community
 
1 intro to_dpdk_and_hw
1 intro to_dpdk_and_hw1 intro to_dpdk_and_hw
1 intro to_dpdk_and_hw
 
DPDK Summit 2015 - Sprint - Arun Rajagopal
DPDK Summit 2015 - Sprint - Arun RajagopalDPDK Summit 2015 - Sprint - Arun Rajagopal
DPDK Summit 2015 - Sprint - Arun Rajagopal
 
DPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al SandersDPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al Sanders
 
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
 
Dpdk applications
Dpdk applicationsDpdk applications
Dpdk applications
 
Disruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on LinuxDisruptive IP Networking with Intel DPDK on Linux
Disruptive IP Networking with Intel DPDK on Linux
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
 
DPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii TkachukDPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii Tkachuk
 
Accelerate Service Function Chaining Vertical Solution with DPDK
Accelerate Service Function Chaining Vertical Solution with DPDKAccelerate Service Function Chaining Vertical Solution with DPDK
Accelerate Service Function Chaining Vertical Solution with DPDK
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
100 M pps on PC.
100 M pps on PC.100 M pps on PC.
100 M pps on PC.
 
Scaling the Container Dataplane
Scaling the Container Dataplane Scaling the Container Dataplane
Scaling the Container Dataplane
 

Viewers also liked

Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDKKernel TLV
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsHisaki Ohara
 
Dpdk accelerated Ostinato
Dpdk accelerated OstinatoDpdk accelerated Ostinato
Dpdk accelerated Ostinatopstavirs
 
Understanding DPDK algorithmics
Understanding DPDK algorithmicsUnderstanding DPDK algorithmics
Understanding DPDK algorithmicsDenys Haryachyy
 
DPDK Summit - 08 Sept 2014 - Microsoft- PacketDirect
DPDK Summit - 08 Sept 2014 - Microsoft- PacketDirectDPDK Summit - 08 Sept 2014 - Microsoft- PacketDirect
DPDK Summit - 08 Sept 2014 - Microsoft- PacketDirectJim St. Leger
 
OPNFV: Platform Performance Acceleration
OPNFV: Platform Performance AccelerationOPNFV: Platform Performance Acceleration
OPNFV: Platform Performance AccelerationOPNFV
 
DPDK Integration: A Product's Journey - Roger B. Melton
DPDK Integration: A Product's Journey - Roger B. MeltonDPDK Integration: A Product's Journey - Roger B. Melton
DPDK Integration: A Product's Journey - Roger B. Meltonharryvanhaaren
 
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/StableSR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stablejuet-y
 
SR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/StableSR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/Stablejuet-y
 
3 additional dpdk_theory(1)
3 additional dpdk_theory(1)3 additional dpdk_theory(1)
3 additional dpdk_theory(1)videos
 
Stop the Guessing: Performance Methodologies for Production Systems
Stop the Guessing: Performance Methodologies for Production SystemsStop the Guessing: Performance Methodologies for Production Systems
Stop the Guessing: Performance Methodologies for Production SystemsBrendan Gregg
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101LorisPack Project
 

Viewers also liked (20)

Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDK
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
 
Dpdk accelerated Ostinato
Dpdk accelerated OstinatoDpdk accelerated Ostinato
Dpdk accelerated Ostinato
 
Understanding DPDK algorithmics
Understanding DPDK algorithmicsUnderstanding DPDK algorithmics
Understanding DPDK algorithmics
 
DPDK Summit - 08 Sept 2014 - Microsoft- PacketDirect
DPDK Summit - 08 Sept 2014 - Microsoft- PacketDirectDPDK Summit - 08 Sept 2014 - Microsoft- PacketDirect
DPDK Summit - 08 Sept 2014 - Microsoft- PacketDirect
 
OPNFV: Platform Performance Acceleration
OPNFV: Platform Performance AccelerationOPNFV: Platform Performance Acceleration
OPNFV: Platform Performance Acceleration
 
DPDK Integration: A Product's Journey - Roger B. Melton
DPDK Integration: A Product's Journey - Roger B. MeltonDPDK Integration: A Product's Journey - Roger B. Melton
DPDK Integration: A Product's Journey - Roger B. Melton
 
C++ 11
C++ 11C++ 11
C++ 11
 
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/StableSR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
 
Secure communication
Secure communicationSecure communication
Secure communication
 
Git basics
Git basicsGit basics
Git basics
 
Understanding iptables
Understanding iptablesUnderstanding iptables
Understanding iptables
 
Network sockets
Network socketsNetwork sockets
Network sockets
 
SR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/StableSR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/Stable
 
3 additional dpdk_theory(1)
3 additional dpdk_theory(1)3 additional dpdk_theory(1)
3 additional dpdk_theory(1)
 
DPDK KNI interface
DPDK KNI interfaceDPDK KNI interface
DPDK KNI interface
 
Vagrant
VagrantVagrant
Vagrant
 
Stop the Guessing: Performance Methodologies for Production Systems
Stop the Guessing: Performance Methodologies for Production SystemsStop the Guessing: Performance Methodologies for Production Systems
Stop the Guessing: Performance Methodologies for Production Systems
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101
 

Similar to DPDK Summit 2015 - Intel - Keith Wiles

G rpc talk with intel (3)
G rpc talk with intel (3)G rpc talk with intel (3)
G rpc talk with intel (3)Intel
 
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...mfrancis
 
DPDK IPSec Security Gateway Application
DPDK IPSec Security Gateway ApplicationDPDK IPSec Security Gateway Application
DPDK IPSec Security Gateway ApplicationMichelle Holley
 
Dpdk: rte_security: An update and introducing PDCP
Dpdk: rte_security: An update and introducing PDCPDpdk: rte_security: An update and introducing PDCP
Dpdk: rte_security: An update and introducing PDCPHemant Agrawal
 
Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOSIntroduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOSMediaTek Labs
 
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptxProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptxVivek Kumar
 
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...Shawn Wells
 
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for EnterprisesEnabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for EnterprisesMichelle Holley
 
BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!Linaro
 
Introduction to Fog
Introduction to FogIntroduction to Fog
Introduction to FogCisco DevNet
 
Cisco Multi-Service FAN Solution
Cisco Multi-Service FAN SolutionCisco Multi-Service FAN Solution
Cisco Multi-Service FAN SolutionCisco DevNet
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfAswathRangaraj1
 
Tarun Makwana's Resume
Tarun Makwana's ResumeTarun Makwana's Resume
Tarun Makwana's ResumeTarun Makwana
 
Easily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg asEasily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg asRISC-V International
 
Seminar Accelerating Business Using Microservices Architecture in Digital Age...
Seminar Accelerating Business Using Microservices Architecture in Digital Age...Seminar Accelerating Business Using Microservices Architecture in Digital Age...
Seminar Accelerating Business Using Microservices Architecture in Digital Age...PT Datacomm Diangraha
 
Ceph Day Beijing - SPDK in Ceph
Ceph Day Beijing - SPDK in CephCeph Day Beijing - SPDK in Ceph
Ceph Day Beijing - SPDK in CephCeph Community
 
Ceph Day Beijing - SPDK for Ceph
Ceph Day Beijing - SPDK for CephCeph Day Beijing - SPDK for Ceph
Ceph Day Beijing - SPDK for CephDanielle Womboldt
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Michelle Holley
 

Similar to DPDK Summit 2015 - Intel - Keith Wiles (20)

G rpc talk with intel (3)
G rpc talk with intel (3)G rpc talk with intel (3)
G rpc talk with intel (3)
 
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...
 
DPDK IPSec Security Gateway Application
DPDK IPSec Security Gateway ApplicationDPDK IPSec Security Gateway Application
DPDK IPSec Security Gateway Application
 
Dpdk: rte_security: An update and introducing PDCP
Dpdk: rte_security: An update and introducing PDCPDpdk: rte_security: An update and introducing PDCP
Dpdk: rte_security: An update and introducing PDCP
 
Road to Cloud Native Orchestration
Road to Cloud Native Orchestration Road to Cloud Native Orchestration
Road to Cloud Native Orchestration
 
Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOSIntroduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
 
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptxProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
 
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...
2010-01-28 NSA Open Source User Group Meeting, Current & Future Linux on Syst...
 
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for EnterprisesEnabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
 
BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!
 
Introduction to Fog
Introduction to FogIntroduction to Fog
Introduction to Fog
 
Cisco Multi-Service FAN Solution
Cisco Multi-Service FAN SolutionCisco Multi-Service FAN Solution
Cisco Multi-Service FAN Solution
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
 
Tarun Makwana's Resume
Tarun Makwana's ResumeTarun Makwana's Resume
Tarun Makwana's Resume
 
Easily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg asEasily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg as
 
Seminar Accelerating Business Using Microservices Architecture in Digital Age...
Seminar Accelerating Business Using Microservices Architecture in Digital Age...Seminar Accelerating Business Using Microservices Architecture in Digital Age...
Seminar Accelerating Business Using Microservices Architecture in Digital Age...
 
Ceph Day Beijing - SPDK in Ceph
Ceph Day Beijing - SPDK in CephCeph Day Beijing - SPDK in Ceph
Ceph Day Beijing - SPDK in Ceph
 
Ceph Day Beijing - SPDK for Ceph
Ceph Day Beijing - SPDK for CephCeph Day Beijing - SPDK for Ceph
Ceph Day Beijing - SPDK for Ceph
 
eBPF Basics
eBPF BasicseBPF Basics
eBPF Basics
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
 

Recently uploaded

The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Recently uploaded (20)

The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

DPDK Summit 2015 - Intel - Keith Wiles

  • 2. Classify QoS Core Libraries Platform PreservingApplicationInvestmentwithDPDK • Open-source (BSD license) community project (5+ years, version 2.1 latest) -- http://dpdk.org/ ‒ All code is Open Source including the device drivers or PMDs (Poll Mode Drivers) ‒ Optimized Linux User Space Library focused on data plane implementation on general purpose processors ‒ Has been Very stable project with ABI versioning for APIs ‒ Multi-architecture: x86, IBM, Freescale, EZChip(Tilera) support • Encompasses legacy platforms and newer acceleration platforms • DPDK has a large application install base and included in Linux Distro’s CentOS, Ubuntu, Red Hat, …(Fedora) ‒ Adopted by standard OS distributions (FreeBSD, Linux) and many platform frameworks including VirtIO/Vhost and OpenvSwitch • Scalable solution to meet different NFV use cases • Hardware acceleration complemented by software implementations for consistent set of services to applications • Supports a large number of features like lockless rings, hash keys, ACL, Crypto, Match Action, buffer management and many others • Has a large number of example applications and growing • Supports any number of devices at the same time, using a 2 layer device model Packet Access (PMD – Native & Virtual) EAL MALLOC MBUF MEMPOOL RING TIMER KNI POWER IVSHMEM LPM EXACT MATCH ACL E1000 IXGBE VMXNET3 IGB I40e VIRTIO ETHDEV XENVIRT PCAP RING METER SCHED Linux User Space Application User Space KNI IGB_UIOVF_IO 2
  • 3. DataPlaneDevelopmentKitArchitecture * Other names and brands may be claimed as the property of others. Linux Kernel User Space KNI IGB_UIO EAL MALLOC MBUF MEMPOOL RING TIMER Core Libraries KNI POWER IVSHMEM Other/Misc rte_hash librte_aclE1000, IGB IXGBE VMXNET3 VIRTIO ETHDEV Packet I/O XENVIRT PCAP Mellanox* Cisco VIC* Broadcom* i40e FM10K Chelsio* Exact Match API Flow Director ACL API Load Balance rte_distrib RSS Flow Director RRC HW acceleration QoS API rte_meter rte_sched Island Cove Crypto API SW crypto QAT crypto Common Function APIs Drivers FRMWORK Inline IA-64-32 PowerPPC MIPS ARM Arch Ports CMDLINE JOBSTAT PIPELINE BONDING OTHER PMDs KVARGS
  • 4. 4 DPDK-AEWhat is Acceleration Enhancements for DPDK?
  • 5. 5 DPDK–WhatdoestheFutureHold? Here are a few items we are thinking about and need help • DPDK-AE (Acceleration Enhancements) • What type of acceleration device types? • Crypto via hardware and software acceleration • DPI engine • Compression • Match Action and Flow Director APIs • Adding support for SoC hardware • hardware memory management and event handling • Network Stacks, light weight threading and other applications • Focus on VirtIO performance and enhancements • Support other language bindings
  • 7. 7 DPDK–CryptousingHardwareandSoftware Doing hardware and/or software crypto has some good advantages • Hardware crypto can handle the large packets • Software crypto can handle the smaller packets Added advantages are: • better performance over a range of packet sizes • parallel execution with software and hardware crypto • Abstracts the packet handling making it transparent to the application
  • 8. CryptoDeviceConfiguration(RFC) uint8_t dev_id; /* Crypto Device identifier */ /* Crypto Device Configuration */ struct rte_cryptodev_config dev_conf = { .socket_id = SOCKET_ID_ANY, .nb_queue_pairs = RTE_CRYPTODEV_DEFAULT_NB_QUEUE_PAIRS, .session_mp = { .nb_objs = RTE_CRYPTODEV_DEFAULT_NB_SESSIONS, .cache_size = RTE_CRYPTODEV_DEFAULT_CACHE_SIZE } }; /* Configure device */ rte_cryptodev_configure(dev_id, &dev_config); /* Crypto Device Queue Pair Configuration */ struct rte_cryptodev_qp_conf qp_conf = { .nb_descriptors = RTE_CRYPTODEV_DEFAULT_NB_DECS_PER_QUEUE_PAIR } /* Configure device queue pairs */ uint16_t qp_id; for (qp_id = 0; qp_id < RTE_CRYPTODEV_DEFAULT_NB_QUEUE_PAIRS; qp_id++) { rte_cryptodev_queue_pair_setup(dev_id, qp_id, &qp_conf, rte_cryptodev_socket_id(dev_id))); }
  • 9. CryptoSessionManagement(RFC) uint8_t aes128_cbc_key[CIPHER_KEY_LENGTH_AES128_CBC] = { … }; /* AES128 cipher key */ uint8_t hmac_sha256_key[HMAC_KEY_LENGTH_SHA256] = { … }; /* HMAC SHA256 authentication key */ /* Cipher Parameters */ struct rte_crypto_cipher_params cipher_params = { .algo = RTE_CRYPTO_SYM_CIPHER_AES_CBC, .op = RTE_CRYPTO_SYM_CIPHER_OP_ENCRYPT, .key = { .data = aes128_cbc_key, .length = CIPHER_KEY_LENGTH_AES128_CBC } } /* Authentication Parameters */ struct rte_crypto_hash_params hash_params = { .op = RTE_CRYPTO_SYM_HASH_OP_DIGEST_GENERATE, .algo = RTE_CRYPTO_SYM_HASH_SHA256_HMAC, .auth_key = { .data = hmac_sha256_key, .length = HMAC_KEY_LENGTH_SHA256 }, .digest_length = DIGEST_BYTE_LENGTH_SHA256 } /* Session Creation */ struct rte_cryptodev_session *crypto_session = rte_cryptodev_session_create(dev_id, &cipher_params, &hash_params, RTE_CRYPTO_SYM_OPCHAIN_CIPHER_HASH);
  • 10. CryptoOperation(RFC)struct rte_mbuf *m; /* Create a crypto op mempool */ struct rte_mempool *crypto_op_pool = rte_crypto_op_pool_create(“crypto_op_mempool", NB_CRYPTO_OPS, CRYPTO_OP_CACHE_SIZE, rte_socket_id()); /* Generate Crypto op data structure */ struct rte_crypto_op_data *crypto_op = rte_crypto_op_alloc(crypto_op_pool); /* Set crypto operation data parameters, in this example, we are appending the generated digest to the end of the mbuf data buffer and prepending the IV to the start of mbuf data buffer, these parameter do not need to be within the mbuf */ rte_crypto_op_attach_session(crypto_op, crypto_session); crypto_op->digest.data = (uint8_t *)rte_pktmbuf_append(m, DIGEST_BYTE_LENGTH_SHA224); crypto_op->digest.length = DIGEST_BYTE_LENGTH_SHA224; crypto_op->iv.data = (uint8_t *)rte_pktmbuf_prepend(m, CIPHER_IV_LENGTH_AES128_CBC); crypto_op->iv.length = CIPHER_IV_LENGTH_AES_CBC; crypto_op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC; crypto_op->data.to_cipher.length = DATA_LENGTH; crypto_op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC; crypto_op->data.to_hash.length = DATA_LENGTH; /* Attach the completed crypto op data structure to the mbuf */ rte_pktmbuf_attach_crypto_op(m, crypto_op);
  • 11. CryptoPacketProcessing(RFC) uint8_t dev_id; /* Crypto device identifier */ uint16_t qp_id; /* Queue pair identifier */ struct rte_mbuf *pkts[] = { m, … }; /* Array of mbufs for crypto processing */ unsigned nb_pkts = sizeof(pkts)/sizeof(*pkts); /* Number of valid mbufs in pkts array */ /* Enqueue mbufs for crypto processing on the specified crypto device queue */ unsigned pkts_enqueued = rte_cryptodev_enqueue_burst(dev_id, qp_id, pkts, nb_pkts); /* Create an array of mbuf pointers to receive processed packets */ struct rte_mbuf *ppkts[MAX_BURST_SIZE]; /* Dequeue all available processed mbufs up to MAX_BURST_SIZE on the specified crypto device queue */ unsigned pkts_dequeued = rte_cryptodev_dequeue_burst(dev_id, qp_id, ppkts, MAX_BURST_SIZE);
  • 13. 13 DPDK–FlowClassificationwithHardware DPDK uses Flow Director APIs to manage flows Match-Action API is a superset of APIs for flow classification • The code is open source at https://github.com/match-interface Match-Action API has a much large set of APIs to handle more flow classification needs, which we need to expose in the future The Match-Action API is used under the Flow Director API for backward compatibility with current applications, while extending the applications to new hardware or software designs
  • 14. 14 DPDK–FlowClassificationwithHardware DPDK uses Flow Director APIs to manage flows The flows are currently managed in NIC devices, but we can extend FDIR APIs to support other hardware devices using Match-Action Later we can continue to extend FDIR API to allow for more complex configurations and hardware designs using the full set of APIs with Match-Action APIs
  • 16. DPDK-AE(DPDK-AccelerationEnhancements) DPDK – Architecture Focus to Date DPDK-AE (Acceleration Enhancements) DPDK API Crypto Device DPI Device Match-Action Device Future Device AES-NI QAT Hyperscan RRC SoCs* * We can adapt the SoC SDK via a DPDK PMD to maintain the highest performance SoC PMD external memory manager Network Stacks Storage and file systems Pktgen Traffic generator Open vSwitch (OVS) Light weight threads Future features Event based program model EAL MALLOC MBUF MEMPOOL RING TIMER Core Libraries KNI POWER IVSHMEM Platform LPM Classificatio n ACL Classify e1000 ixgbe bonding af_pkt i40e fm10k Packet Access (PMD) ETHDEV xenvirt enic ring METER SCHED QoS cxgbe vmxnet3 virtio 3rd Party 3rd Party PIPELINE mlx4 memnic others HASH Utilities IP Frag CMDLINE JOBSTAT KVARGS REORDER TABLE 3rd Party NBT Simple SOC model 1 Example Applications VNF Applications
  • 17. DPDKExtendingAcceleratorsviaSoChardware DPDK – Architecture DPDK-AE (Acceleration Enhancements) DPDK – API Software Hardware SoC SDK SoC PMD external memory manager 3rd Party VNF Application Crypto Device Simple model for SOC integration Ethernet Device SoC PMD: Poll Mode driver model for SoC devices Provides a clean integration of SoC via a PMD in DPDK • Hardware abstraction in DPDK is at the PMD layer • DPDK-API: A generic API extended to support SoCs – DPDK provides a two layer device model to support many devices at the same time/binary, which can include SoC devices – Need to enhance DPDK with some SoC specific needs or features to support SoC hardware • Non-PCI configuration • External memory manager(s) (for hardware based memory) • Event based programming model • SoC-PMD: Poll Mode Driver model for SoC – Allows SoC SDK’s to remain private • Supports ARM and MIPS DPDK ports to utilize these SoC designs Supports other device types
  • 18. 18 DPDK–ChangestoSupportSoChardware Enabling SoC hardware in DPDK requires a few enhancements • Need a way to configure these non-PCIe devices • Add support to DPDK mempool’s to allow for external or hardware memory managers • Add support for event based applications • e.g. Open Event Machine or others to utilize an event based programming model Enlisting input for other enhancements to DPDK for SoC devices
  • 19. 19 DPDK–NetworkStackWe need a stack the only question is how many?
  • 20. 20 DPDK–NetworkStacksandothers DPDK needs to add network stack support for applications • One network stack will not fill everyone’s needs today • DPDK needs a clean API for multiple network stacks Some examples for network stack types • Network stack with very high performance with UDP and TCP • Low latency network protocol support for High Frequency Trading • IPv6 support and SCTP are a few protocols needed • Light weight threading model for more then one thread per core to manage applications built using a multi-threaded design What else needs to be supported?
  • 21. 21 DPDK–NetworkStack(s) •Need a standalone Socket solution • For linked and non-linked applications • Need to support native applications using LD_PRELOAD •Integration with the host platform network stack • Does the design appear as one stack or multiple stacks? • Need to support integration with the host stack • Netlink messages can be used to update the DPDK stack • Synchronize all stacks for routing and application data • Must be able to route packets to the local host stack from the accelerated stacks • Exception path or normal traffic like management
  • 22. 22 DPDK–NetworkStack(s) How can we build these network stack? • FreeBSD based stacks allow for up to date protocols • Purpose built stacks are also needed for a given use case • High performance and/or low latency stack are needed •One option is to maintain up to date protocols/stacks • We can pull FreeBSD code from FreeBSD on demand then apply patches to allow us to build FreeBSD in DPDK style • Support as much of the protocols in FreeBSD as possible should be a goal IMO • Support File systems types using DPDK as a fast disk device
  • 24. 24 DPDK–VirtIO •Virtio is one of the primary interfaces for VM   Host • Needs to be enhanced to support more devices • Need to enhance performance of VirtIO •SR-IOV is good for some cases in a VM • But does not scale to many VMs or containers • Very good in the host users pace to gain direct access to the devices •Not all devices support SR-IOV and VirtIO is the only solution we have today as a standard
  • 26. 26 DPDK–languagesuggestions DPDK needs other language bindings other than ‘C’ • Go from Google : golang.org • Go concurrency mechanisms make it easy to write programs and get the most out of multicore machines • Swift will become Open Source later this year • Swift is easy to program and has some nice performance • Java is also another good language • These language bindings can add cleaner application development • Adding object oriented language designs • Give better support for multicore programming for the developer • Cleaner and faster development • These compiled languages could provide very good performance with some trade offs
  • 27. 27 DPDK–ScriptingLanguages Interpreted languages like Lua (lua.org) or Python are reasonable for configuration • Lua is very simple to support DPDK bindings to the language • Python is object oriented, but harder/bigger to integrate Using a scripting language can enhance configuration and writing applications like network protocol testers where performance is not the main requirement What other language bindings would be reasonable?
  • 28. 28 DPDK–Summary • We need to add more acceleration supported hardware • Review and comment on the Crypto RFC • Lets contribute other architecture types like ARM to DPDK.org • Adding SoC enhancements to DPDK for more devices • Lets move forward by adding more network stacks • Add support to enhance native applications • Lets add other language bindings to enhance configuration and application designs • Lets collaborate on these and more…