Data Plane Development Kit (DPDK) - набір бібліотек data plane та драйверів мережевих карт для швидкої обробки пакетів. DPDK забезпечує програмний фреймворк для Intel x86 процесорів та дозволяє швидку розробку мережевих додатків для пакетів даних високої швидкості.[2][3] Він підтримує процесори починаючи з Intel Atom та закінчуючи Intel Xeon, підтримка інших процесорних архітектури, таких як IBM POWER8, в процесі розробки.[4] DPDK розповсюджується та підтримується відповідно до умов відкритої [5] ліцензії BSD.

DPDK / dpdk.org
Тип Маршрутизація
Розробники 6WIND, Intel
Стабільний випуск 2.2.0 (15 грудня, 2015; 8 років тому (2015-12-15))
Операційна система FreeBSD, Linux
Мова програмування C
Стан розробки Активно розробляється
Ліцензія BSD
Репозиторій dpdk.org/git/dpdk
Вебсайт dpdk.org

Огляд ред.

DPDK фреймворк створює набір бібліотек для особливих апаратних/програмних середовищ через створення Рівня Абстаркції Середовища (англ. Environment Abstraction Layer, EAL).[6] EAL приховує специфіку середовища та забезпечує стандартний програмний інтерфейс до бібліотек, доступних апаратних прискорювачів та інших апаратних елементів та елементів операційних систем (Linux, FreeBSD). Як тільки EAL створено для особливого середовища, розробники посилаються до бібліотек щоб створити свої додатки. Наприклад, EAL забезпечує фреймворки для підтримки Linux, FreeBSD, Intel IA 32- чи 64-бітні чи IBM Power8.

EAL також надає додаткові сервіси включаючи часові посилання, PCIe шину доступу, функції відстежування і налагодження та операції сигналізацій.

DPDK впроваджує модель низького навантаження run-to-completion[en] для продуктивновності швидкого data plane та має доступ до пристроїв через опитування що усуває перевантаження обробки переривань .

DPDK також включає програмні приклади що висвітлюють найкращі практики архітектур програмного забезпечення, підказки для дизайну структури даних та зберігання, профілювання додатків і утиліти налагодження продуктивності та підказки, що показують основні недоліки продуктивності мережі.

Бібліотеки ред.

DPDK включає бібліотеки data plane та оптимізовані NIC драйвера для:[7]

  • Менеджера черг, що впроваджує неблокуючі черги
  • Менеджера буферів, що заздалегідь виділяє фіксований розмір буферів
  • Менеджер пам'яті, що виділяє пули об'єктів в пам'яті та використовує кільце для збереження вільних об'єктів; впевнюючись що об'єкти рівномірно розподілені на всіх DRAM каналах
  • Драйверів режиму опитування (PMD), що розроблені для роботи без асинхронних оповіщень, зменшуючи накладні витрати
  • Пакетного фреймворку, що являє собою набір бібліотек, які допомагають розробляти додатки для обробки пакетів

Всі бібліотеки зберігаються в директоріях dpdk/lib/librte_*

Плагіни ред.

EAL дозволяє завантажувати деякі плагіни використовуючи опцію -d file.so без перекомпіляції будь-якого додатку, що використовує DPDK бібліотеки. Доступні наступні плагіни:

  • librte_pmd_virtio.so — забезпечує PMD Ethernet рівень, який підтримує Virtio паравіртуалізовані NIC;
  • librte_pmd_vmxnet3.so — забезпечує PMD Ethernet шар, який підтримує Vmxnet3 паравіртуалізовані NIC;
  • librte_pmd_memnic_copy.so — забезпечує Віртуальний PMD Ethernet шар через спілну пам'ять, що базується на 2 копіях пам'яті пакету;
  • librte_pmd_mlx4.so — забезпечує PMD Ethernet шар для Mellanox ConnectX-3 40G NIC;
  • librte_crypto_nitrox.so — забезпечує криптографічний шар для PCI плат Cavium Nitrox;
  • librte_crypto_quickassist.so — забезпечує криптографічний рівень для PCI плат Intel Cave Creek.

Середовище ред.

DPDK був розроблений для використання в режимі голого заліза, що наразі є застарілим. Фактично DPDK EAL забезпечує підтримку Linux чи FreeBSD додатків режиму користувача.

EAL може бути розширений для підтримки будь-яких процесорів.

Екосистема ред.

Не враховуючи 6WIND та Intel, які є основними розробниками DPDK, декілька виробників також підтримують DPDK в своїх продуктах а деякі пропонують додаткові трейнінги, підтримку та професійні сервіси. Список виробників які анонсували підтримку DPDK включає:

Проекти ред.

25 лютого 2015 проект pfSense опублікував дорожню карту, в якій розробник Jim Thompson анонсував переписування ядра pfSense—включаючи pf, network packet переправляння та shaping, агрегацію каналів, IPSec—використовуючи Intel's DPDK: "Ми маєм ціль бути готовими пересилати через фільтр пакетів хоча б на швидкості 14.88Mpps. Що є граничною на 10Gbps порті. Зараз просто не має способу використовувати стек ядра FreeBSD (чи linux) для даного типу навантаження."[18]

Посилання ред.

  1. https://www.linuxjournal.com/content/userspace-networking-dpdk
  2. Simon Stanley,All Change for Packet Processing [Архівовано 21 серпня 2016 у Wayback Machine.], Heavy Reading, 2013
  3. Shamus McGillicudy, Intel DPDK, switch and server ref designs push SDN ecosystem forward [Архівовано 18 вересня 2015 у Wayback Machine.], SearchSDN, April 2013
  4. "DPDK: Data Plane Development Kit – What it is" [Архівовано 11 січня 2016 у Wayback Machine.]. dpdk.org. dpdk.org.
  5. Simon Stanley,DPDK Goes Open-Source [Архівовано 22 серпня 2016 у Wayback Machine.], Intel Embedded Community, May 2013
  6. Intel Corporation, Intel® Data Plane Development Kit: Programmers Guide [Архівовано 3 травня 2015 у Wayback Machine.], November 2012
  7. Intel Communications Infrastructure Division, Intel® Data Plane Development Kit Overview [Архівовано 4 березня 2016 у Wayback Machine.], December 2012
  8. PRWeb, 6WIND Extends Portable Packet Processing Software to Support Intel® Data Plane Development Kit [Архівовано 26 березня 2016 у Wayback Machine.], September 2011
  9. Aricent, [1] [Архівовано 4 березня 2016 у Wayback Machine.], January, 2015
  10. Calsoft Labs to offer professional services and support for Intel® Data Plane Development Kit [Архівовано 4 березня 2016 у Wayback Machine.], ALTEN Calsoft Labs, 18 February 2014, retrieved 2014-10-28 
  11. COTS Journal, ATCA Blade Serves Up Xeon E5-2600 Processor [Архівовано 4 березня 2016 у Wayback Machine.], June 2012
  12. Brocade vRouter [2] [Архівовано 12 грудня 2015 у Wayback Machine.]
  13. MarketWatch, Radisys Delivers Industry's First 40G Solution for Intel(R) Data Plane Development Kit, September 2012
  14. Tieto, Tieto provides professional software services and support for the Intel® Data Plane Development Kit [Архівовано 4 березня 2016 у Wayback Machine.], February 2012
  15. Reuters, Wind River Delivers Support and Services for Intel Data Plane Development Kit for High-Performance Packet Processing [Архівовано 20 червня 2013 у Archive.is], May 2012
  16. Get Flying with the Intel Data Plane Development Kit [Архівовано 6 грудня 2015 у Wayback Machine.], Lanner Electronics Inc., 20 February 2013, retrieved 2013-07-11 
  17. http://www.mobica.com/index.php [Архівовано 26 грудня 2015 у Wayback Machine.] Missing or empty |title= (help)
  18. Thompson, Jim.