Data Plane Development Kit

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

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

Огляд

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

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

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

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

Бібліотеки

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

  • Менеджера черг, що впроваджує неблокуючі черги
  • Менеджера буферів, що заздалегідь виділяє фіксований розмір буферів
  • Менеджер пам'яті, що виділяє пули об'єктів в пам'яті та використовує кільце для збереження вільних об'єктів; впевнюючись що об'єкти рівномірно розподілені на всіх 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) для даного типу навантаження."[17]

Посилання

  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". dpdk.org. dpdk.org.
  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. Calsoft Labs to offer professional services and support for Intel® Data Plane Development Kit, ALTEN Calsoft Labs, 18 February 2014, retrieved 2014-10-28 
  10. COTS Journal, ATCA Blade Serves Up Xeon E5-2600 Processor Архівовано 4 березень 2016 у Wayback Machine., 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. Get Flying with the Intel Data Plane Development Kit, Lanner Electronics Inc., 20 February 2013, retrieved 2013-07-11 
  16. http://www.mobica.com/index.php Архівовано 26 грудень 2015 у Wayback Machine. Missing or empty |title= (help)
  17. Thompson, Jim.