Introduction
Jim St. Leger
To access the summary, slides, and video links for a specific session, click on each of the tabs below.
Dynamic mbuf
Thomas Monjalon, Mellano
The main data structure in DPDK – mbuf – contains metadata for packet buffers which are sent or received. Protocol processing offloads may require an infinite number of metadata, whereas the size of the structure is finite. This problem will be discussed with a solution relying on dynamic registration of needs.
Which Standard for Ethernet Statistics?
Thoman Monjalon, Mellanox
DPDK has basic stats which are limited and extended stats which are not enough standardized and implemented. This presentation will make a status of the implementation, the issues, and an overview of some standards. It should draw the way to improvements in DPDK ethdev and PMDs.
Recent advances in DPDK IPsec
Konstantin Ananiev, Intel
Briefly describe recent developments to enhance DPDK IPsec support with new features and gather community feedback on:
1. Scalable Security Association Database (SADB)
2. Enhancement in rte_security API to speedup synchronous (CPU based) crypto processing.
3. Support for one SA over multiple crypto devices (multiple sessions per SA).
DPDK Regex device
Alex Rosenbaum, Mellanox
Regular expression processing and DPI widely used by VNFs (Firewall, cybersecurity applications, Network Based Application Recognition).
Even though there are some vendors which offer Regex/DPI lookaside or inline HW acceleration, there are no standard APIs for it in DPDK.
This effect application portability between different vendors and the ability to expose such functionality on opensource DPDK apps such as VPP, OVS-DPDK, etc.
This presentation will present the Regex device in order to standardize the use of Regex/DPI within DPDK. In addition, will also present a framework to support inline Regex/DPI processing on top of the ethdev.
Adding Eventdev support in IPsec-gw and other apps
Hemant Agrawal, NXP
This presentation will give overview of newly added support for crypto eventdev framework and how it is being added to IPSEC GW and l2fwd-crypto kind of application to take best advantage of non-polling based processing.
Asynchronous CBDMA Enqueue Framework for vHost-User
Zhihong Wang, Intel
In DPDK vhost-user enqueue operations, where data movement is heavily involved, performing memory copy operations takes up a major portion of CPU cycles and usually becomes the hot spot. To save precious CPU core resources and achieve higher performance, DMA engines, such as Crystal Beach DMA (CBDMA), can be used to accelerate memory copy operations. To avoid blocking the CPU, memory copy operations should be offloaded to the DMA engine in an asynchronous mode.
In this presentation, we propose an asynchronous CBDMA enqueue framework for vhost-user. First, we will present the design of asynchronous CBDMA offloading pipeline. With the asynchronous pipeline, vhost-user can achieve optimal offloading performance with the CBDMA or even other DMA engines. Second, we will introduce a new asynchronous enqueue API for users to easily use CBDMA-accelerated vhost-user enqueue.
With our asynchronous CBDMA enqueue framework, vhost-user can offload memory copy operations to the CBDMA efficiently and without blocking the CPU. Therefore, the saved CPU cycles can be used to perform CPU logics, thus improving the overall performance in turn.
DPDK Thread-safe High Performance Pseudo-random Number Generation
Mattias Rönnblom, Ericsson
This talk covers a recent DPDK contribution in the area of pseudo-random number generation (PRNG). The patch set introduces a DPDK-native, backward-compatible, thread-safe PRNG implementation, with improved performance and pseudo-random number quality compared to the legacy implementation.
Better development with robots
Aaron Conole, RedHat
In this talk, we aim to cover some existing robots and tests that are used for each patch submitted to the mailing list. We’ll discuss how to check the various public testing infrastructure that is being used, the tools available for building your own robots, and how to feed your test reports to the community to give early patch feedback.
DPDK Community Updates
John McNamara, Intel
An overview of DPDK community development and growth in the last year including, community maintainers calls, stable releases, static code analysis, and the community testing lab. A panel discussion with other members of the community.
Community Survey Analysis and Conclusion
Honnappa Nagarahalli, ARM
During the 2018 North America DPDK summit, the community asked questions on improving the development methodologies by using tools such as Gerrit, GitHub pull requests, etc. Subsequently, a survey was conducted to understand the need. This presentation will go into the details of the outcome of the survey.
DPDK.org services, latest and future planned improvements
Ali Alnubani, Mellanox
The talk is to present a list of the services (web, git, etc.) provided by dpdk.org, with usage and a short description of each, along with the latest improvements that were done. The talk will also cover what’s planned in the near future.
Introduction to the new DPDK Vulnerabilities management process
Maxime Coquelin
The DPDK Technical Board has worked on the definition of a vulnerabilities management process. This talk will present the outcomes of this work.
DPDK LTS update
Kevin Traynor, Red Hat
DPDK LTS releases have been in operation for almost 3 years. Anecdotal reports are that DPDK LTS is becoming more popular with users.
Firstly, let us refresh with why there is an LTS, how it is different from master DPDK releases, and what needs it serves.
Building on that we will talk about the last year, changes to short term stable releases and some statistics on the releases.
Finally, we can talk about things that developers and companies can do to ensure that LTS releases are high quality for their use cases, and have an open discussion about how LTS releases can improve to meet the needs of developers and companies.
Does DPDK need a stable ABI?
Stephen Hemminger, Microsoft & Ray Kinsella, Intel
In light of the renewed community discussion on Application Binary Interface Stability, now is the time to debate the merits and challenges of ABI Stability.
DPDK has its roots as a toolkit for developing Packet Processing appliances, where realizing packet processing performance is traditionally the highest priority. Since then it has grown into the new usage models of Network Function Virtualization and Cloud, where there is now the competing demands to continue the pace of innovation and also provide ABI Stability, Seamless Upgrades, Long Term Support, and OS Packaging as primary means of distribution.
ABI Stability will help bring these numerous benefits listed above and possibly more, however it will mean changes to the often permissive culture that we have around ABI changes that have helped DPDK’s rapid growth and innovation.
How can the community reconcile these often competing for demands of innovation and stability? DPDK Userspace is an opportunity to debate the next stage in DPDK’s evolution.
Integrating RCU library with data structures
Honnappa Nagarahalli, ARM
RCU library has been merged in 19.05 release. However, it needs to be adopted further into other DPDK libraries and example applications. I have been working on a common design that can be used across various DPDK libraries. The design differs from the typical integration that liburcu library offers and provides several advantages. This presentation will discuss the requirements for the design, the design itself and seek any feedback. It will help the reviewers and other maintainers to integrate RCU library in their work.
Current sorry state of C11 code and suggestions to fix it
Phil Yang, ARM
I will provide a brief introduction on the relaxed memory models, C11 atomic APIs and issues with some of the APIs provided. I will proceed to present cases in DPDK where the C11 model is not fully followed. I will present cases from different parts of DPDK to show the performance benefits across the board. Finally, I would like to point out how the rte_atomic APIs fall short of addressing relaxed memory models and propose that the community should adopt using C11 APIs going forward. If time permits, I will go over how to use C11 APIs to write efficient code.
Arm64 WFE mechanism and use cases in DPDK
Gavin Hu, ARM
In this presentation, I will talk about the ARMv8 WFE (Wait For Event) mechanism and how it works and benefits the power and performance by saving cache and memory traffic.
The rte ring, spinlock, ticket lock and other locks use cases were identified and the benchmarking tests already showed significantly positive results while more widely benchmarking on different Arm64 microarchitectures is ongoing. It had no impact on x86 and PPC.
A new API was introduced for easy use of the WFE and in the last I will talk about how and in what contexts it can be used.
DPDK Build System Status and Plans
Bruce Richardson, Intel
This lightning talk is to provide an update on the DPDK build systems, both the status of the new one – including any gaps and the plans for deprecation of the old make system. The intention is to both inform the community of the plans, and ensure that nothing is being missed in the switchover.
What is wrong with existing packet capture (and how to fix it)
Stephen Hemminger, Microsoft
DPDK supports packet dump via pdump, but the solution relies on the older libpcap API which has many limitations. This talk will discuss a proposed enhancement using pcapng which supports multiple interfaces, higher resolution timestamps, additional meta data, and can be used directly from tshark or wireshark.
virtio-net failover in DPDK
Jens Freimann, RedHat
This talk will present what I did to implement the Virtio failover feature to QEMU and what our ideas are to bring it to QEMU. I will most likely not present an already implemented solution but my ideas on how to do it in DPDK. I hope to spark a discussion and get some feedback from the DPDK community.
A description of the failover feature: Virtio has a feature to enable VMs that have a PT (pass-through) device plugged for fast transmission of data to be live migrated to another host system. For this, a pair of NICs is specified as a failover group. The fastPT NIC is called the primary interface and a second paravirtualized (PV) NIC (virtio-net) is called the standby device. When both virtio front- and backend support this feature, live migration is done by first unplugging the fast-path NIC and then have the (slower) virtio-net device take over the data path. This means that only the virtio-net device needs to be live migrated and we already have support for that. After migration is completed a PT device is plugged to the target VM and the data path can be switched over from the PV to the PT device. A more detailed discussion of the feature can be found here: https://mstsirkin.blogspot.com/2019/03/virtio-network-device-failover-support.html?m=1
DPDK-accelerated Partial Offload for Fine-grained HQoS
Rosen Xu, Intel
The HQoS(Hierarchical Quality of Service) block is widely used in prioritizing the transmission of packets from different users and different traffic classes according to the policy specified by the Service Level Agreements (SLAs) of each network node. The most usages of HQoS in NFVi(Network Function Virtualization Infrastructure) and VNF(Virtual Network Function) are scheduling millions of traffic flows. But Software Based HQoS is an overhead processing, Schedule and its associated Shape Elements of HQoS take up most of CPU cores while Inter Connection for Schedule Information also consumes most of CPU Caches. For Hardware-based HQoS implementation, being restricted by resource, PCIe TX/RX Queue of NIC usually has less than a thousand of queues, and the queue number is also fixed so it’s hard to expand millions of traffic class by software requirements. This idea calls for a method to implement a partial HQoS framework, by which not only provides more Flexible Queue Expand but also provides High Precision Scheduling.
Latest Power Enhancements in DPDK
David Hunt, Intel
In DPDK 19.05, support was added to the power management library to allow pinning of threads to any available higher performing cores. This lightning talk gives an overview of how DPDK can benefit and utilize a new technology introduced in recent CPUs, called Speed Select Technology – Base Frequency, which gives a guaranteed higher frequency on some of the cores in the processor. It also goes through the API changes added to DPDK to allow applications maximize their performance, along with a sample application to demonstrate their use.
Measure Software Performance of Data Plane Applications
Harry van Haaren, Intel
Measuring software performance of data-plane applications is a difficult task. This presentation showcases best-known-methods to measure and understand software performance. Solutions to common performance issues are shown to improve your data-plane performance, with some real-world examples.
rte_flow at hyper large scale toward production is really happening
Alex Rosenbaum, Mellanox & Li Xing, Alibaba
Why is high flow count handling in DPDK such an important trend?
What is considered ‘high flow count’?
What needs to be improved in DPDK to handle 10 million flow rules?
Some considerations are touching the offload flow handling to NIC, memory footprint, more API changes and new flow objects.
In this collaborated presentation, Alibaba, a large cloud provider, with Mellanox NIC vendor, will detail a live production deployment use case utilizing DPDK for large scale flow count handling.
We will answer some of the above questions and touch some of the future big challenges on this topic.
DPDK expands into Storage domain
Darek Stojaczyk & Fiona Trahe, Intel
SPDK is an open source library used to accelerate storage services with similar poll mode techniques to DPDK. The storage domain needs solutions to many of the same problems as networking, so rather than re-invent the wheel SPDK uses DPDK. This presentation will explain how SPDK integrates with DPDK vhost, compressdev, cryptodev, hugepage management and PCI hotplug.
Docker VNFs and packet throughput using Lib1Net and DPDK
Anthony Fee, Emutex
Lib1Net, developed by Emutex, is a library that enables Virtual Network Function (VNF) vendors to develop high performance VNFs that can be easily enabled on any common network interface. This is achieved by abstracting the VNFs from the underlying network interfaces. Currently, when onboarding VNFs, the decision has already been made at the development phase as to what network interface is supported by the VNF. This complicates the onboarding process due to the possibility that the supported network interface type is not compatible with the telco network infrastructure. As a result, the engineer enabling the VNF may need to work with the vendor to integrate the VNF within their infrastructure. This slows the onboarding process and adds potential expense to both the telco and VNF vendor.
Building VNFs using the Lib1Net library removes the decision at development time as to what network interfaces should be supported. Instead, the VNF is abstracted from and supports many common network interface types through the Lib1Net single network interface. This in turn means that the telco engineer enabling the VNF simply needs to configure which network interface type to attach to the VNF at runtime.
Enabling VNFs using Lib1Net unlocks the potential to open the VNF market for smaller vendors particularly when looking towards moving intelligence to the network edge. Once the VNF has been developed there should no longer be a need to work with the telco engineer beyond the configuration of the VNF itself.
Lib1Net is built with DPDK at its core and abstracts the application from the configuration and initialisation of DPDK. It provides a Docker container-to-container interface built using DPDK shared-memory to enable trusted VNF service chains with zero-copy packet transfers. It currently supports DPDK physical interfaces, the vhost-user interface and the link (container-to-container) interface. Further development is planned to support the VPP memif interface and the AF_XDP interface. Lib1Net is currently implemented as a proof of concept. We look forward to receiving feedback from the DPDK community on Lib1Net’s viability as a tool to simplify the VNF development and onboarding process. For more information about Lib1Net visit www.emutex.com or email lib1net@emutex.com