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 находит плагины путем поиска пути к плагину для библиотек, а затем динамически загружает каждый из них при запуске или перезапуске.

Ссылки[править | править код]

Примечание[править | править код]

Примечания[править | править код]

  1. Home (англ.). The Fast Data Project. Дата обращения: 26 июля 2019. Архивировано 24 июля 2019 года.