VPP (VPP)
Vector Packet Processing platform, VPP (платформа векторной обработки пакетов) — расширяемая платформа, которая обеспечивает готовые функциональные возможности коммутатора или маршрутизатора. Это высокопроизводительный стек обработки пакетов, который может работать на обычных процессорах.
Технология VPP разработана компанией Cisco и является фреймворком модульной конструкции с открытым кодом. В настоящее время, проект VPP поддерживается сообществом разработчиков[1].
Общие сведения
[править | править код]VPP может работать в пространстве пользователя на нескольких архитектурах, включая архитектуры x86, ARM и Power на серверах x86 и встроенных устройствах. Технология VPP не зависит от аппаратного обеспечения, ядра и развертывания (голое железо, виртуальная машина, контейнер). Он полностью работает в пользовательском пространстве.
Архитектура программного обеспечения VPP состоит из программной инфраструктуры, включающей библиотеки vppinfra, vlib, и бинарные API-библиотеки, набора библиотек и функций для сетевого стека: vnet, оболочки приложения vpp и набора плагинов.
Технология VPP
[править | править код]VPP разработан с использованием концепций векторной обработки пакетов. Сетевой стек векторной обработки пакетов позволяет обрабатывать несколько пакетов за один раз, которые называются «векторами пакетов» или просто «вектором». VPP собирает обычно до 256 пакетов в одном векторе. Затем функция обработки прерываний берет вектор пакетов из сетевого интерфейса и обрабатывает вектор с помощью набора функций. Обработка производится с помощью узла графов.
Для повышения производительности данных в технологию VPP внедрен ориентированный граф узлов пересылки векторов, который обрабатывает несколько пакетов за один вызов. Помимо узлов ввода и вывода данных, весь граф узлов представляет собой переносимый код, который можно изменять программно. В зависимости от рассматриваемого сценария часто запускается несколько рабочих потоков, которые обрабатывают пакеты входящего хэша из нескольких очередей, используя идентичные реплики пересылаемого графа.
Принятые пакеты пересекают узлы графа в зависимости от сценария. Сами узлы графа модульные и слабо связанные. Это позволяет легко вводить новые узлы графа и перемонтировать существующие узлы графа. С этой целью в технологии VPP используется понятие плагина, пользовательской библиотеки, которая будет интерпретирована как новый узел. Плагины являются общими библиотеками и загружаются во время выполнения VPP. VPP находит плагины путем поиска пути к плагину для библиотек, а затем динамически загружает каждый из них при запуске или перезапуске.
Ссылки
[править | править код]Примечание
[править | править код]- https://wiki.fd.io/view/VPP/What_is_VPP%3F VPP/What is VPP?
- https://lists.fd.io/g/vpp-dev Development list for the vpp project
- FDIO Quick Start Guide
Примечания
[править | править код]- ↑ Home (англ.). The Fast Data Project. Дата обращения: 26 июля 2019. Архивировано 24 июля 2019 года.