Content deleted Content added
No edit summary |
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 |
||
(45 intermediate revisions by 31 users not shown) | |||
Line 1:
{{Use dmy dates|date=March 2015}}▼
{{short description|Open source software project}}
▲{{Use dmy dates|date=March 2015}}
{{Infobox software
| name = DPDK
| logo = Data Plane Development Kit.png
| latest_release_version =
| latest_release_date = {{
| url = http://core.dpdk.org/download/
| title = DPDK
| website = core.dpdk.org
}}</ref>
| operating_system = [[Linux]], [[FreeBSD]], [[Windows]]
| genre = [[Packet processing]]
| programming_language = [[C (programming language)|C]]
| repo = {{
| license = [[BSD]]
| website = {{URL|
}}
The '''Data Plane Development Kit''' ('''DPDK''') is an [[open source]] software project managed by the [[Linux Foundation]]. It provides a set of [[data plane]] libraries and [[network interface controller]] polling-mode drivers for offloading [[Transmission Control Protocol|TCP]] [[packet processing]] from the [[operating system]] [[Kernel (operating system)|kernel]] to [[Process (computing)|processes]] running in [[user space]]. This offloading achieves higher computing efficiency and higher packet throughput than is possible using the interrupt-driven processing provided in the kernel.
DPDK provides a programming framework for [[x86]], [[ARM architecture|ARM]], and [[PowerPC]] processors and enables faster development of high speed data packet networking applications.<ref>Simon Stanley,[http://www.heavyreading.com/commchip/document.asp?doc_id=228565 All Change for Packet Processing] {{Webarchive|url=https://web.archive.org/web/20160821215058/http://www.heavyreading.com/commchip/document.asp?doc_id=228565 |date=21 August 2016 }}, Heavy Reading, 2013</ref><ref>Shamus McGillicudy, [http://searchsdn.techtarget.com/news/2240182264/Intel-DPDK-switch-and-server-ref-designs-push-SDN-ecosystem-forward DPDK, switch and server ref designs push SDN ecosystem forward] {{Webarchive|url=https://web.archive.org/web/20150918212638/http://searchsdn.techtarget.com/news/2240182264/Intel-DPDK-switch-and-server-ref-designs-push-SDN-ecosystem-forward |date=18 September 2015 }}, SearchSDN, April 2013</ref> It scales from mobile processors, such as [[Intel Atom]], to server-grade processors, such as [[Intel Xeon]]. It supports [[instruction set architecture]]s such as Intel, IBM [[POWER8]], [[EZchip]], and [[ARM architecture|ARM]].<ref name=DPDK-POWER8>{{cite web|title=DPDK: Data Plane Development Kit – What it is|url=http://dpdk.org/|website
DPDK was created by Intel engineer Venky Venkatesan, who is affectionately known as "The Father of DPDK." He died in 2018 after a long battle with cancer.<ref>{{Cite web |title=In Loving Memory: Venky Venkatesan, "The Father of DPDK" |url=https://www.dpdk.org/about/venky/ |access-date=2022-05-12 |website=DPDK |language=en-US}}</ref>
==Overview==
Line 28 ⟶ 29:
The EAL also provides additional services including time references, generic [[Bus (computing)|bus]] access, trace and debug functions and alarm operations.
Using DPDK libraries one can implement a low overhead [[run-to-completion]], pipeline or staged, event driven, or hybrid model completely in userspace eliminating kernel and kernel to user copy. Hardware assists from [[NIC/Regex/Accelerators]], libraries enhanced to make use of Intelligence Storage Acceleration (ISA)<ref>{{Cite web|title=How DPDK can Deflate your Data! {{!}} SNIA|url=https://www.snia.org/educational-library/how-dpdk-can-deflate-your-data-2018|access-date=2021-06-21|website=www.snia.org}}</ref> for bulk performance and accessing devices via [[Polling (computer science)|polling]] helps to eliminate the performance overhead of [[interrupt]] too. Hugepages are used for large memory pool allocation, to decrease the amount of lookups and page management.<ref>{{Cite web|last=PANTHEON.tech|date=2020-01-09|title=VPP 105: Memory Management & DPDK APIs|url=https://pantheon.tech/vector-packet-dpdk-apis/|access-date=2021-06-21|website=PANTHEON.tech|language=en-US}}</ref>
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.
Line 53 ⟶ 52:
==Environment==
The DPDK was originally designed to run using a [[Bare machine|bare-metal]] mode which is currently deprecated.
EAL can be extended in order to support any processors.{{fact|date=July 2022}}
==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 overseen by a Technical Board.<ref>[http://dpdk.org/about/techboard DPDK Technical Board]</ref> 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]],<ref>PRWeb, [http://www.prweb.com/releases/2011/9/prweb8785683.htm 6WIND Extends Portable Packet Processing Software to Support Data Plane Development Kit] {{Webarchive|url=https://web.archive.org/web/20160326063326/http://www.prweb.com/releases/2011/9/prweb8785683.htm |date=26 March 2016 }}, September 2011</ref> [[ALTEN]] Calsoft Labs,<ref>{{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|archive-date=4 March 2016|archive-url=https://web.archive.org/web/20160304201111/http://www.calsoftlabs.com/mediaroom/news.asp?NewsId=133|url-status=dead}}</ref><ref>https://builders.intel.com/docs/ALTEN-Calsoft-Labs-and-Intel-Improving-Network-Agility-with-Virtual-CPE.pdf {{Bare URL PDF|date=March 2022}}</ref> Advantech,<ref>COTS Journal, [http://www.cotsjournalonline.com/articles/view/102520 ATCA Blade Serves Up Xeon E5-2600 Processor] {{Webarchive|url=https://web.archive.org/web/20160304040038/http://www.cotsjournalonline.com/articles/view/102520 |date=4 March 2016 }}, June 2012</ref> Brocade,<ref>[http://www.brocade.com/en/products-services/software-networking/network-functions-virtualization/5600-vrouter.html Brocade vRouter]</ref> Big Switch Networks, [[Mellanox Technologies]],<ref>{{Cite web|last=Technologies|first=Mellanox|title=Data Plane Development Kit (DPDK) {{!}} Poll Mode Driver (PMD)|url=https://www.mellanox.com/products/products/software/accelerator-software/pmd-for-dpdk|access-date=2021-02-10|website=Mellanox|language=en}}</ref> [[Radisys]],<ref>MarketWatch, [http://www.marketwatch.com/story/radisys-delivers-industrys-first-40g-solution-for-intelr-data-plane-development-kit-2012-09-10 Radisys Delivers Industry's First 40G Solution for Data Plane Development Kit], September 2012</ref> Tieto,<ref>Tieto, [
==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 (firewall)|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.88 Mpps.
[[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 [[
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
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 (company)|Ixia]].<ref>
DPDK has support for several [[Single-root input/output virtualization|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 <ref>
DDP (Dynamic Device Personalization) is one of the new advanced features implemented with DPDK. It allows you to load
firmware for a device dynamically, without resetting the host.
== See also ==
* [[Express Data Path]]
==References==
Line 81 ⟶ 83:
{{Routing software}}
{{Linux Foundation}}
[[Category:Free routing software]]
|