请输入您要查询的百科知识:

 

词条 Data Plane Development Kit
释义

  1. Overview

  2. Libraries

     Plugins 

  3. Environment

  4. Ecosystem

  5. Projects

  6. References

{{Use dmy dates|date=March 2015}}{{Infobox software
| name = DPDK
| logo = Data Plane Development Kit.png
| latest_release_version = 19.02
| latest_release_date = {{release date|df=yes|2019|02|01}}
| operating_system = FreeBSD, Linux
| genre = Packet Processing
| status = Active
| programming_language = C
| repo = https://git.dpdk.org/dpdk/
| license = BSD
| website = {{URL|dpdk.org}}
}}

The Data Plane Development Kit (DPDK) is a set of data plane libraries and network interface controller drivers for fast packet processing, currently managed as an open-source project under the Linux Foundation. The DPDK provides a programming framework for x86, ARM, and PowerPC processors and enables faster development of high speed data packet networking applications.[1][2] It scales from mobile processors, such as Intel Atom, to server-grade processors, such as Intel Xeon. It supports instruction set architectures such as Intel, IBM POWER8, EZchip, and ARM.[3] It is provided and supported under the open-source[4] BSD license.

Overview

The DPDK framework creates a set of libraries for specific hardware/software environments through the creation of an Environment Abstraction Layer (EAL).[5] The EAL hides the environment specifics and provides a standard programming interface to libraries, available hardware accelerators and other hardware and operating system (Linux, FreeBSD) elements. Once the EAL is created for a specific environment, developers link to the library to create their applications. For instance, EAL provides the frameworks to support Linux, FreeBSD, Intel IA-32 or 64-bit, IBM POWER9 and ARM 32- or 64-bit.

The EAL also provides additional services including time references, generic bus access, trace and debug functions and alarm operations.

The DPDK implements a low overhead run-to-completion model for fast data plane performance and accesses devices via polling to eliminate the performance overhead of interrupt processing.

The DPDK is also in the process of including the event-based programming model for fast data plane processing.

The DPDK also includes software examples that highlight best practices for software architecture, tips for data structure design and storage, application profiling and performance tuning utilities and tips that address common network performance deficits.

Libraries

The DPDK includes data plane libraries and optimized network interface controller (NIC) drivers for the following:[6]

  • A queue manager implements lockless queues
  • A buffer manager pre-allocates fixed size buffers
  • A memory manager allocates pools of objects in memory and uses a ring to store free objects; ensures that objects are spread equally on all DRAM channels
  • Poll mode drivers (PMD) are designed to work without asynchronous notifications, reducing overhead
  • A packet framework – a set of libraries that are helpers to develop packet processing

All libraries are stored in the dpdk/lib/librte_* directories

Plugins

The DPDK includes drivers for many hardware types.[7] There have been some additional out-of-tree plugin drivers in the past, which are now considered deprecated.

  • librte_pmd_vmxnet3.so{{snd}} provides PMD Ethernet layer supporting Vmxnet3 paravirtualized NIC; superseded by full VMXNET3 support in native DPDK.
  • librte_pmd_memnic_copy.so{{snd}} provides a Virtual PMD Ethernet layer through shared memory based on 2 memory copies of packets

Environment

The DPDK was originally designed to run using a bare-metal mode which is currently deprecated. Actually, DPDK's EAL provides support for Linux or FreeBSD userland application.

EAL can be extended in order to support any processors.

Ecosystem

DPDK is now an open-source project under the Linux Foundation, supported by many companies. DPDK is governed by a Governing Board. The technical activities are overlooked by a Technical Board.[8] Beside Intel, which is a contributor to the DPDK, several other vendors also support the DPDK within their products and some offer additional training, support and professional services. The list of vendors who have announced DPDK support includes: 6WIND,[9] ALTEN Calsoft Labs,[10][11] Advantech,[12] Brocade,[13] Big Switch Networks, Radisys,[14] Tieto,[15] Wind River,[16] and Lanner.[17]

Projects

The pfSense project published a road map on 25 February 2015, in which developer Jim Thompson announced the rewriting of the pfSense core—including pf, network packet forwarding and shaping, link bonding, IPsec—using DPDK: "We have a goal of being able to forward, with packet filtering at rates of at least 14.88Mpps. This is 'line rate' on a 10Gbps interface. There is simply no way to use today's FreeBSD (or linux) in-kernel stacks for this type of load."[18]

Open vSwitch (OVS) has a limited set of features running userland that can be leveraged to bypass the Linux kernel OVS processing. This use case of OVS with DPDK userland is usually named OVS-DPDK. It is mostly deployed with OpenStack Neutron but it assumes that many features and software-defined networking (SDN) capabilities of Openstack are disabled. For instance, when OVS-DPDK is used, Neutron provides a lower level of security than when OVS kernel is used (no stateful firewalling, less security group).

The FD.IO VPP platform is an extensible framework that provides out-of-the-box production quality switch/router functionality. It is the open source version of Cisco's Vector Packet Processing (VPP) technology: a high performance, packet-processing stack that can run on commodity CPUs, and can leverage the Poll Mode Drivers for both NICs and cryptographic acceleration hardware and libraries.[19]

TRex is an open source traffic generator using DPDK. It generates L4-7 traffic based on pre-processing and smart replay of real traffic templates. TRex amplifies both client and server side traffic and can scale to 200 Gbit/s with one UCS using Intel XL710. TRex also supports multiple streams, ability to change any packet field and provides per stream statistics, latency and jitter.[20]

DTS (DPDK Test Suite) is a Python based framework for functional tests and benchmarks. It is an open-source project, started in 2014, and is hosted on dpdk.org. It supports both software traffic generators like Scapy and dpdk-pktgen, and a hardware traffic generator like Ixia.[21]

DPDK has support for several SRIOV network drivers, enabling creating a PF (Physical Function) and VFs, and also to launch VMs (like QEMU VMs) and assign VFs to them using PCI Passthrough [22]

DDP (Dynamic Device Personalization) is one of the new advanced features implemented with DPDK. It allows you to dynamically load

firmware for a device dynamically, without resetting the host. [23]

References

1. ^Simon Stanley,All Change for Packet Processing, Heavy Reading, 2013
2. ^Shamus McGillicudy, DPDK, switch and server ref designs push SDN ecosystem forward, SearchSDN, April 2013
3. ^{{cite web|title=DPDK: Data Plane Development Kit – What it is|url=http://dpdk.org/|website=dpdk.org|publisher=dpdk.org|accessdate=29 March 2016}}
4. ^Simon Stanley,DPDK Goes Open-Source, Intel Embedded Community, May 2013
5. ^DPDK Docs, Data Plane Development Kit: Programmers Guide, September 2017
6. ^Intel Communications Infrastructure Division, Data Plane Development Kit Overview, December 2012
7. ^"Supported NICS"
8. ^DPDK Technical Board
9. ^PRWeb, 6WIND Extends Portable Packet Processing Software to Support Data Plane Development Kit, September 2011
10. ^{{citation|url=http://www.calsoftlabs.com/mediaroom/news.asp?NewsId=133|title=Calsoft Labs to offer professional services and support for Data Plane Development Kit|publisher=ALTEN Calsoft Labs|accessdate=2014-10-28|date=18 February 2014}}
11. ^https://builders.intel.com/docs/ALTEN-Calsoft-Labs-and-Intel-Improving-Network-Agility-with-Virtual-CPE.pdf
12. ^COTS Journal, ATCA Blade Serves Up Xeon E5-2600 Processor, June 2012
13. ^Brocade vRouter
14. ^MarketWatch, Radisys Delivers Industry's First 40G Solution for Data Plane Development Kit, September 2012
15. ^Tieto, Tieto provides professional software services and support for the Data Plane Development Kit, February 2012
16. ^Reuters, [https://www.reuters.com/article/2012/05/22/idUS129768+22-May-2012+BW20120522 Wind River Delivers Support and Services for Data Plane Development Kit for High-Performance Packet Processing], May 2012
17. ^{{citation|url=http://www.lannerinc.com/news-and-events/latest-news/get-flying-with-intel-data-plane-development-kit|title=Get Flying with the Data Plane Development Kit|publisher=Lanner Electronics Inc.|accessdate=2013-07-11|date=20 February 2013}}
18. ^{{cite web|last1=Thompson|first1=Jim|title=Further (a roadmap for pfSense)|url=https://blog.pfsense.org/?p=1588|website=blog.pfsense.org|publisher=Electric Sheep Fencing LLC.|accessdate=21 April 2015}}
19. ^{{cite web|title=VPP fd.io|url=https://wiki.fd.io/view/VPP/What_is_VPP%3F|website=wiki.fd.io|publisher=Linux Foundation|accessdate=29 December 2016}}
20. ^ name=Trex {{cite web|title=TRex|url=https://trex-tgn.cisco.com|publisher=Cisco Systems|accessdate=29 December 2016}}
21. ^ Rami Rosen, [https://lwn.net/Articles/725254 Network acceleration with DPDK], lwn.net, July 2017
22. ^ Rami Rosen, [https://www.linuxjournal.com/content/userspace-networking-dpdk Userspace Networking with DPDK], Linux Journal, April 2018.
23. ^Rami Rosen, DPDK in depth, Kernel TLV, August 2018
{{Routing software}}

3 : Free routing software|Networking hardware|Linux Foundation projects

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/13 9:15:39