Utilisateur:Jieff0/Brouillon

Une page de Wikipédia, l'encyclopédie libre.

Modèle:Use dmy dates

DPDK / dpdk.org
Description de l'image Intel DPDK GTR Back.jpg.

Informations

The Data Plane Development Kit (DPDK) is a set of data plane libraries and network interface controller drivers for fast packet processing. The DPDK provides a programming framework for Intel x86 processors and enables faster development of high speed data packet networking applications.[1][2] It scales from Intel Atom processors to Intel Xeon processors and support for other processor architectures like IBM POWER8 are under progress.[3] It is provided and supported under the open source[4] BSD license.

Overview[modifier | modifier le code]

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 environmental specific 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 or IBM Power8.

The EAL also provides additional services including time references, PCIe 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 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[modifier | modifier le code]

The DPDK includes data plane libraries and optimized 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 – set of libraries that are helpers to develop packet processing

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

Plugins[modifier | modifier le code]

The EAL allows loading some plugins using the -d file.so option without recompiling any applications that use the DPDK libraries. The following plugins are available:

  • librte_pmd_virtio.so – provides PMD Ethernet layer supporting Virtio paravirtualized NIC
  • librte_pmd_vmxnet3.so – provides PMD Ethernet layer supporting Vmxnet3 paravitualized NIC
  • librte_pmd_memnic_copy.so – provides a Virtual PMD Ethernet layer thru shared memory based on 2 memory copies of packets
  • librte_pmd_mlx4.so – provides PMD Ethernet layer for Mellanox ConnectX-3 40G NIC
  • librte_crypto_nitrox.so – provides cryptography layer for Cavium Nitrox PCI boards
  • librte_crypto_quickassist.so – provides cryptography layer for Intel Cave Creek PCI boards.

Environment[modifier | modifier le code]

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[modifier | modifier le code]

Beside 6WIND and Intel which are the two main contributors to the DPDK, several vendors 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:

Projects[modifier | modifier le code]

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 Intel's 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."[17]

References[modifier | modifier le code]

  1. Simon Stanley,All Change for Packet Processing, Heavy Reading, 2013
  2. Shamus McGillicudy, Intel DPDK, switch and server ref designs push SDN ecosystem forward, SearchSDN, April 2013
  3. « DPDK: Data Plane Development Kit – What it is », sur dpdk.org, dpdk.org (consulté le )
  4. Simon Stanley,DPDK Goes Open-Source, Intel Embedded Community, May 2013
  5. Intel Corporation, Intel® Data Plane Development Kit: Programmers Guide, November 2012
  6. Intel Communications Infrastructure Division, Intel® Data Plane Development Kit Overview, December 2012
  7. PRWeb, 6WIND Extends Portable Packet Processing Software to Support Intel® Data Plane Development Kit, September 2011
  8. Aricent, [1], January, 2015
  9. « {{{1}}} »
  10. COTS Journal, ATCA Blade Serves Up Xeon E5-2600 Processor, June 2012
  11. Brocade vRouter [2]
  12. MarketWatch, Radisys Delivers Industry's First 40G Solution for Intel(R) Data Plane Development Kit, September 2012
  13. Tieto, Tieto provides professional software services and support for the Intel® Data Plane Development Kit, February 2012
  14. Reuters, Wind River Delivers Support and Services for Intel Data Plane Development Kit for High-Performance Packet Processing, May 2012
  15. « {{{1}}} »
  16. « {{{1}}} »
  17. Jim Thompson, « Further (a roadmap for pfSense) », sur blog.pfsense.org, Electric Sheep Fencing LLC. (consulté le )

{{Routing software}} [[Category:Free routing software]] [[Category:Network architecture]] [[Category:Routers (computing)]] [[Category:Computer networking]] [[Category:Virtualization software]] [[Category:Ethernet]]