- This event has passed.
DPDK Userspace, Dublin
September 5, 2018 - September 6, 2018
To access the summary, slides, and video links for a specific session, click on each of the tabs below.
rte_security: An Update and Introducing New Protocols (PDCP)
Akhil Goyal, NXP
Security library was introduced in DPDK as means for offloading the security protocol processing to hardware providing better utilization of host CPU for packet processing. There are many enhancements since the original proposal. This talk provides the updates on the security library, current gaps and a new proposal to add PDCP protocol offload support.
A DPDK Native IPsec Library
Declan Doherty, Intel
IPsec is a suite of communication protocols which enable the securing of communications networks at the IP layer and is increasingly making up a larger proportion of the total packet processing workload of data plane applications. In this presentation, we will introduce a new IPsec library for DPDK, designed and developed to be performant and scalable, with native support for hardware acceleration. We will describe the modular architecture of the library and outline the proposed development roadmap. Finally, we will discuss how an IPsec solution in DPDK can be used to drive the adoption of IPsec hardware acceleration in data plane applications and infrastructure.
Introduction to the Distributed Software Event Device
Mattias Rönnblom, Ericsson
The Distributed Software (DSW) event device proposal adds a new software-based event device, which differs from the SW event device in that the task of scheduling events is distributed across all participating lcores.
Deflate Your Data with DPDK
Lee Daly, Intel and Fiona Trahe, Intel
This presentation will be a crash course on the new compressdev API. If you are an application developer you will gain the skills to be able to use the API to compress your data. If you have a software/hardware accelerator you will be enabled to start building your own compression PMD. We will also explain some of the architecture and design hurdles we faced and overcame in creating the API.
mbuf External Buffer and Usage Examples
Shahaf Shuler, Mellanox
Recent work in DPDK exposed a new mode for mbuf to have the data buffer externally attached. We will present the new mbuf mode in details. In addition, we will demonstrate its usage for various applications as well as for devices which can receive a single buffer pointer to be used for multiple packets. Finally, we will present our thoughts for further improvements to expose the external buffer mode as part of the non-experimental API.
Watch Video »
Download Slides »
Dynamic Device Management (hotplug)
Thomas Monjalon, Mellanox
This presentation is an overview of the device management in DPDK – past, present, and future. It is a guided tour into the layers (bus, device resource, driver, device class, application) explaining what are the requirements and solutions to manage several buses, migration, hotplug, and multi-process.
Don’t Fear uid != 0
Aaron Conole, Red Hat
Much of the code in DPDK makes assumptions about which system resources are available and required. In this talk, we’ll challenge those assumptions and show that developers and users should embrace non-root users and SELinux == Enforcing. We’ll talk about some of the challenges we’ve encountered in using these ‘locked down’ systems.
Exploring the New DPDK Memory Subsystem
Anatoly Burakovm Intel
As an important step towards making DPDK less “greedy”, DPDK memory subsystem has been reworked in 18.05 release. In this talk, we will present an overview of the changes done to the DPDK memory subsystem, and explain various new features made possible by these changes. We will also provide an overview of several practical examples of how changes in DPDK memory subsystem have affected other DPDK features, and discuss solutions that were implemented in an effort to demonstrate approaches to dealing with these changes.
Watch Video »
Download Slides »
DPDK Usability for OVS with DPDK
Ian Stokes, Intel
OVS with DPDK aims to be device agnostic i.e. regardless of the driver, ports should be initialized, configured and used largely in the same manner. APIs such as the eth dev API help achieve this to a degree but specific device capabilities and driver behavior beneath the eth dev API make a truly generic approach in OVS DPDK difficult. This talk will present a number of examples of this encountered to date, how they were resolved within OVS DPDK but how they could be better resolved within the DPDK code base.
Do Less by Default
Thomas Monjalon, Mellanox and Bruce Richardson, Intel
DPDK started as a bare-metal framework and evolves toward a library model. In order to be a real library, giving all powers and flexibility to the application, some work and agreements are required. Ideally, the application should own all the configurations (e.g. for threads, memory or devices), while DPDK provides some good defaults, some parsing helpers, and a fine-grain API.
Vhost/Virtio: Past Year Achievements and Upcoming Challenges
Maxime Coquelin, Red Hat and Jens Freimann, Red Hat
In this talk, we will cover the past year developments related to Vhost and Virtio, covering the features that have been introduced, and issues that have been fixed. Then, new features that are planned for the next releases will be presented, and improvements expected by the community will be discussed.
Supporting Cloud Native with DPDK and Containers
Keith Wiles, Intel
Getting DPDK ready to better support Cloud Native applications in containers/VMs by adding Runtime control, Application Abstraction and flexible I/O designs. Adding runtime control to DPDK for external coordination in an easy to use design plus adding application abstraction layer for applications to easily utilize DPDK high performance I/O without having to understand the details of DPDK internals. The presentation will have a demo and explain how we can scale hardware I/O within a system with large numbers of containers by creating an easy software patch panel design for container to hardware abstraction.
A Service Assurance Solution for DPDK
Harry van Haaren, Intel
It is currently impossible to reliably monitor DPDK applications using generic service assurance tools. This talk introduces a JSON based API to retrieve metrics and telemetry from DPDK. It shows how simple the monitoring of any DPDK application can be if we expose DPDK metrics through a simple RESTful API, which can be consumed by any service-assurance agent (eg: CollectD). Building this functionality into the DPDK primary application enables the Service Assurance agent to monitor all DPDK applications as generic entities, instead of each application providing an ad-hoc implementation.
Scaling the DPDK Community
John McNamara, Intel and Kevin Traynor, Red Hat
As the community continues to grow, our ability to scale and support our customers is increasingly important. In this talk, we will present a brief overview of the current status of maintenance in DPDK and seek feedback on further improvements. We will take the opportunity to present an overview of the DPDK maintenance map including where we have gaps, discuss committer and maintainer expectations, discuss changes recently implemented (for example the new weekly Maintainers call, weekly merge, etc.), and get input on proposed future changes.
DPDK CI & Open Lab
Jeremy Plsek, UNH InterOperability Lab and Lijuan Tu, Intel
Establishing a CI system for DPDK is facing several challenges: 1) DPDK validation (build, test and benchmark) need to cover different OSes, vendors’ platforms, and vendors’ NICs. 2) Need to do CI test for DPDK patches in “before merge” and “after merge” timely (in a short time).
The proposal is that DPDK open lab + DPDK CI system. In open lab, standard testbeds are designed by each vendor, and all testbeds are managed centralized. Based on standard testbeds, a unified test suite can be well defined to cover OSes, platforms, NICs and their combination. With standard testbeds and a unified test suite, execution time is fined controlled and consistent quality indicator can be provided to all users. Meanwhile, CI system is designed to monitor patches in community, to trigger build test on each OS, and to dispatch tests to testbeds in open lab. Finally, the validation results are showed in CI dashboard. Furthermore, CI system includes a database in the back-end to support to track quality and performance data.
Extending DPDK Flow Classification Libraries for Determinism and Cloud Users
Sameh Gobriel, Intel
In this talk we will briefly present new technologies to extend DPDK flow classification libraries to cover more general use cases. We will fist provide an overview of the different classification libraries (e.g. hash library, EFD library, membership library, ..etc.) and highlight the set of usages where each library is a best fit for. Next, we provide details of new extensions that we are adding to the hash library to support read/write concurrency and guaranteed flow insertion, Both features, in our point of view, are must have for a wide set of usages especially to support telco workloads. Additionally we present new research directions we are investigating on how to use DPDK flow classification libraries to optimize cloud key-value stores. We highlight bottlenecks of the current indexing schemes of such huge stores, and how DPDK can be augmented (e.g. by extending membership library to support range filters, and lossy caches, ..etc.) to help address these bottlenecks. We are soliciting feedback of DPDK developers and users on our new research directions and looking forward to any collaboration opportunity to optimize cloud workloads.
Lock-Free Read-Write Concurrency in rte_hash
Honnappa Nagarahalli, Arm
Recent patches have tried to address the reader-writer concurrency in rte_hash library. However, these fall short on solving the problem on multiple use cases. These solutions result in further significant problems when the use cases involve preemptible writer threads. Lock-free addition and deletion algorithms are required to truly solve the read-write concurrency. This talk explores the need for lock-free algorithms in the context of rte_hash library, the changes required in rte_hash for 64bit systems. It will also discuss various options available for solving the issue on 32bit systems and seek feedback. Performance numbers with this proposal will also be presented.
Recent Power Management Enhancements in DPDK
David Hunt, Intel
DPDK PMDs typically poll on rings, making the cores look 100% busy to the OS. Using Power Management Unit (PMU) counters, it is possible to differentiate between busy and non-busy poll loops, allowing scaling down of the core frequency during low-traffic situations, and scaling up (including Turbo) in high traffic situations, without modifying the application. A patch demonstrating this method has been added to DPDK 18.08 using the branch hits and branch misses PMU counters. The talk will give an overview of power management techniques in DPDK, and detail the methods used in the latest DPDK Power Management features.
urdma: A Remote Direct Memory Access verbs provider using DPDK
Patrick MacArthur, UNH InterOperability Laboratory
Remote Direct Memory Access (RDMA) provides a low latency, high throughput network interconnect with kernel bypass and zero copy between application virtual memory regions. RDMA deployments require expensive, specialized hardware. Software RDMA providers have been developed to allow testing and research of RDMA features without this specialized hardware. Historically, these software providers, including softiwarp and softroce (rxe), have been implemented in the kernel. Using DPDK, we have developed an RDMA provider named urdma that performs data transfer entirely in userspace with only minimal connection management in the kernel. The urdma provider uses a variant of the standard iWARP protocol over UDP, and is capable of running on commodity NICs. The kernel and userspace components of urdma are available under an open-source license. This presentation will discuss goals, the design and implementation of the provider, issues encountered during development, and a performance evaluation.
Tungsten Fabric DPDK Based vRouter HW Offloads
Olga Shern, Mellanox
There is a wide range of smart/intelligent NICs emerging on the market, implemented using various technologies. These NICs are capable of being programed to perform advanced packet classification and modification operations, allowing to implement flexible packet processing pipelines implementing switching, routing, tunneling, etc. This talk will present work being done to accelerate the Tungsten Fabric DPDK based vRouter, using DPDK rte_flow API to implement a generic, vendor-agnostic, open source offload module. We will also discuss potential future enhancements to DPDK rte_flow APIs to enable additional accelerations.
DPDK PMD for AF_XDP
Xiaoyun Li, Intel
AF_XDP, which can be regarded as an upgraded version of AF_PACKET, can provide more than 10 times performance improvement. It can also connect the XDP pass-through to user-space directly, which means an ebpf program that processes packets can be forwarded to an application in a very efficient way. Thus enabling a delicate PMD for AF_XDP is valuable for DPDK applications to benefit from it. In this presentation, we will share our recent work about enabling a DPDK Polling Mode driver for AF_XDP. Firstly, we will briefly introduce AF_XDP and why we need a DPDK PMD driver for AF_XDP. Then we will present the implementation details on how to translate AF_XDP language (XDP socket, ebpf redirect map…) into DPDK language (ethdev, queue), how to reach zero copy between rte_mempool and XDP umem, and so on. At last, we will share some ideas for future improvement such as utilizing the busy poll feature to improve performance.
DPDK + eBPF
Konstantin Ananyev, Intel
BPF is used quite intensively inside Linux (and BSD) kernels for various different purposes and proved to be extremely useful. BPF inside DPDK might also be used in a lot of places for a lot of similar things. As an example to: – packet filtering/tracing (aka tcpdump) – packet classification – statistics collection – HW/PMD live-system debugging/prototyping – trace HW descriptors, internal PMD SW state, etc. The presentation provides information about current status of DPDK eBPF library and ideas for further enhancements and usage scenarios.