Пакет разработки плоскости данных

редактировать

DPDK
Data Plane Development Kit.png
Стабильная версия 20.08 / 8 августа 2020 (2020-08-08)
Репозиторий https://git.dpdk.org/dpdk/
Написано вC
Операционной системе FreeBSD, Linux
Тип Обработка пакетов
Лицензия BSD
Веб-сайтdpdk.org

Пакет Data Plane Development Kit (DPDK ) - это программный проект с открытым исходным кодом, управляемый Linux Foundation. Он предоставляет набор библиотек плоскости данных и контроллер сетевого интерфейса драйверы режима опроса для выгрузки TCP обработки пакетов из операционная система ядро ​​ - процессы, работающие в пользовательском пространстве. Эта разгрузка обеспечивает более высокую вычислительную эффективность и более высокую пропускную способность пакетов, чем это возможно при использовании обработки, управляемой прерываниями, предусмотренной в ядре.

DPDK предоставляет платформу программирования для процессоров x86, ARM и PowerPC и обеспечивает более быструю разработку высокоскоростных сетевых приложений для пакетной передачи данных. Он масштабируется от мобильных процессоров, таких как Intel Atom, до процессоров серверного уровня, таких как Intel Xeon. Он поддерживает архитектуры набора команд, такие как Intel, IBM POWER8, EZchip и ARM. Он предоставляется и поддерживается в рамках лицензии BSD с открытым исходным кодом.

Содержание
  • 1 Обзор
  • 2 Библиотеки
    • 2.1 Плагины
  • 3 Среда
  • 4 Экосистема
  • 5 Проекты
  • 6 Ссылки
Обзор

Инфраструктура DPDK создает набор библиотек для определенных аппаратных / программных сред посредством создания уровня абстракции среды (EAL). EAL скрывает специфику среды и предоставляет стандартный программный интерфейс для библиотек, доступных аппаратных ускорителей и других элементов оборудования и операционной системы (Linux, FreeBSD). После создания EAL для конкретной среды разработчики связываются с библиотекой для создания своих приложений. Например, EAL предоставляет платформы для поддержки Linux, FreeBSD, Intel IA- 32 или 64-бит, IBM POWER9 и ARM 32- или 64-битные.

EAL также предоставляет дополнительные услуги, включая привязку ко времени, общий доступ к шине , функции трассировки и отладки, а также операции сигнализации.

DPDK реализует модель с низкими накладными расходами от выполнения до завершения для быстрой производительности плоскости данных и обращается к устройствам через опрос, чтобы устранить накладные расходы производительности, связанные с прерыванием . обработка.

DPDK также находится в процессе включения модели программирования на основе событий для быстрой обработки плоскости данных.

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

Библиотеки

DPDK включает библиотеки уровня данных и оптимизированные драйверы контроллера сетевого интерфейса (NIC) для следующего:

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

Все библиотеки хранятся в каталогах dpdk / lib / librte_ *

Плагины

DPDK включает драйверы для многих типов оборудования. В прошлом были некоторые дополнительные драйверы плагинов вне дерева, которые теперь считаются устаревшими.

  • librte_pmd_vmxnet3.so - обеспечивает уровень PMD Ethernet, поддерживающий паравиртуализированную сетевую карту Vmxnet3; заменено полной поддержкой VMXNET3 в собственном DPDK.
  • librte_pmd_memnic_copy.so - обеспечивает уровень Virtual PMD Ethernet через общую память на основе 2 копий памяти пакетов
Среда

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

EAL может быть расширен для поддержки любых процессоров.

Экосистема

DPDK теперь является проектом с открытым исходным кодом в рамках Linux Foundation, поддерживаемого многими компаниями. DPDK управляется Советом управляющих. Технический совет не контролирует техническую деятельность. Помимо Intel, которая является участником DPDK, несколько других поставщиков также поддерживают DPDK в своих продуктах, а некоторые предлагают дополнительное обучение, поддержку и профессиональные услуги. Список поставщиков, объявивших о поддержке DPDK, включает: 6WIND, ALTEN Calsoft Labs, Advantech, Brocade, Big Switch Networks, Radisys, Tieto, Wind River, и Lanner.

Projects

25 февраля 2015 года проект pfSense опубликовал дорожную карту, в которой разработчик Джим Томпсон объявил о переписывании ядра pfSense, включая pf, сетевой пакет пересылка и формирование, связывание каналов, IPsec - с использованием DPDK: «У нас есть цель - иметь возможность пересылать с фильтрацией пакетов со скоростью не менее 14,88 млн пакетов в секунду.. Это «линейная скорость» для интерфейса 10 Гбит / с. Просто нет возможности использовать сегодняшние стеки ядра FreeBSD (или Linux) для этого типа нагрузки ».

Open vSwitch (OVS) имеет ограниченные набор функций, запускающих пользовательскую среду, которые можно использовать для обхода обработки OVS ядра Linux. Этот вариант использования OVS с пользовательской средой DPDK обычно называется OVS-DPDK. В основном он развертывается с OpenStack Neutron, но предполагает, что многие функции и возможности программно-определяемых сетей (SDN) Openstack отключены. Например, при использовании OVS-DPDK Neutron обеспечивает более низкий уровень безопасности, чем при использовании ядра OVS (без межсетевого экрана с отслеживанием состояния, меньше группы безопасности).

Платформа FD.IO VPP - это расширяемая платформа, которая обеспечивает готовые функциональные возможности коммутатора / маршрутизатора производственного качества. Это версия с открытым исходным кодом технологии Cisco Vector Packet Processing (VPP): высокопроизводительный стек обработки пакетов, который может работать на стандартных ЦП и может использовать драйверы режима опроса как для сетевых карт, так и для криптографического ускорения. оборудование и библиотеки.

TRex - генератор трафика с открытым исходным кодом, использующий DPDK. Он генерирует трафик L4-7 на основе предварительной обработки и интеллектуального воспроизведения реальных шаблонов трафика. TRex усиливает трафик как на стороне клиента, так и на стороне сервера и может масштабироваться до 200 Гбит / с с одной UCS с использованием Intel XL710. TRex также поддерживает несколько потоков, возможность изменять любое поле пакета и предоставляет статистику по потокам, задержку и джиттер.

DTS (DPDK Test Suite) - это основанная на Python платформа для функциональных тестов и тестов. Это проект с открытым исходным кодом, стартовавший в 2014 году и размещенный на dpdk.org. Он поддерживает как программные генераторы трафика, такие как Scapy и dpdk-pktgen, так и аппаратный генератор трафика, например, Ixia.

DPDK, имеет поддержку нескольких сетевых драйверов SRIOV, что позволяет создавать PF (Physical Function) и VFs, а также для запуска виртуальных машин (например, QEMU VM) и назначения им VF с помощью PCI Passthrough

DDP (Dynamic Device Personalization) - одна из новых расширенных функций, реализованных с помощью DPDK. Это позволяет загружать прошивку для устройства динамически, без перезагрузки хоста.

Ссылки
Последняя правка сделана 2021-05-17 14:08:46
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте