VPP


Vector Packet Processing platform, VPP (платформа векторной обработки пакетов) — расширяемая платформа, которая обеспечивает готовые функциональные возможности коммутатора или маршрутизатора. Это высокопроизводительный стек обработки пакетов, который может работать на обычных процессорах.

Технология VPP разработана компанией Cisco и является фреймворком модульной конструкции с открытым кодом. В настоящее время, проект VPP поддерживается сообществом разработчиков.

Общие сведения

VPP может работать в пространстве пользователя на нескольких архитектурах, включая архитектуры x86, ARM и Power на серверах x86 и встроенных устройствах. Технология VPP не зависит от аппаратного обеспечения, ядра и развертывания (голое железо, виртуальная машина, контейнер). Он полностью работает в пользовательском пространстве.

Архитектура программного обеспечения VPP состоит из программной инфраструктуры, включающей библиотеки vppinfra, vlib, и бинарные API-библиотеки, набора библиотек и функций для сетевого стека: vnet, оболочки приложения vpp и набора плагинов.

Технология VPP

VPP разработан с использованием концепций векторной обработки пакетов. Сетевой стек векторной обработки пакетов позволяет обрабатывать несколько пакетов за один раз, которые называются «векторами пакетов» или просто «вектором». VPP собирает обычно до 256 пакетов в одном векторе. Затем функция обработки прерываний берет вектор пакетов из сетевого интерфейса и обрабатывает вектор с помощью набора функций. Обработка производится с помощью узла графов.

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

Принятые пакеты пересекают узлы графа в зависимости от сценария. Сами узлы графа модульные и слабо связанные. Это позволяет легко вводить новые узлы графа и перемонтировать существующие узлы графа. С этой целью в технологии VPP используется понятие плагина, пользовательской библиотеки, которая будет интерпретирована как новый узел. Плагины являются общими библиотеками и загружаются во время выполнения VPP. VPP находит плагины путем поиска пути к плагину для библиотек, а затем динамически загружает каждый из них при запуске или перезапуске.



Имя:*
E-Mail:
Комментарий: