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 года.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.