Рубрика «Data Plane Development Kit»

A forwarding entity always forwards packets in per-flow order to
zero, one or more of the forwarding entity’s own transmit interfaces
and never forwards a packet to the packet’s own receive interface.
Brian Petersen. Hardware Designed Network

Одно из удивительнейших достижений современности — это то, как, сидя в Норильске, человек может чатиться со своим другом в Таиланде, параллельно покупать билет на вечерний самолёт к нему, расплачиваясь банковской картой, в то время, как где-то в Штатах на виртуалочке его бот совершает сделки на бирже со скоростью, с которой его сын переключает вкладки, когда отец входит в комнату.

А через 10 минут он закажет такси через приложение на телефоне, и ему не придётся даже брать с собой в дорогу наличку.

В аэропорту он купит кофе, расплатившись часами, сделает видеозвонок дочери в Берлин, а потом запустит кинцо онлайн, чтобы скоротать час до посадки.

За это время тысячи MPLS-меток будут навешаны и сняты, миллионы обращений к различным таблицам произойдут, базовые станции сотовых сетей передадут гигабайты данных, миллиарды пакетов больших и малых в виде электронов и фотонов со скоростью света понесутся в ЦОДы по всему миру.

Это ли не электрическая магия?

В своём вояже к QoS, теме обещанной многократно, мы сделаем ещё один съезд. На этот раз обратимся к жизни пакета в оборудовании связи. Вскроем этот синий ящик и распотрошим его.

Сети для самых маленьких. Часть четырнадцатая. Путь пакета - 1
Кликабельно и увеличабельно.

Сегодня:

  1. Коротко о судьбе и пути пакета
  2. Плоскости (они же плейны): Forwarding/Data, Control, Management
  3. Кто как и зачем обрабатывает трафик
  4. Типы чипов: от CPU до ASIC'ов
  5. Аппаратная архитектура сетевого устройства
  6. Путешествие длиною в жизнь

Читать полностью »

Data Plane Development Kit (DPDK): приступая к работе - 1Для быстрой обработки пакетов требуется обнаруживать битовые шаблоны и быстро (со скоростью работы канала) принимать решения о нужных действиях на основе наличных битовых шаблонов. Эти битовые шаблоны могут принадлежать одному из нескольких заголовков, присутствующих в пакете, которые, в свою очередь, могут находиться на одном из нескольких уровней, например Ethernet, VLAN, IP, MPLS или TCP/UDP. Действия, определяемые по битовым шаблонам, могут различаться — от простого перенаправления пакетов в другой порт до сложных операций перезаписи, для которых требуется сопоставление заголовка пакета из одного набора протоколов с другими. К этому следует добавить функции управления трафика и политик трафика, брандмауэры, виртуальные частные сети и т. п., вследствие чего сложность операций, которые необходимо выполнять с каждым пакетом, многократно возрастает.

Чтобы добиться работы на ожидаемом уровне производительности при скорости канала 10 Гбит/с и размере пакета в 84 байта, процессор должен обрабатывать 14,88 миллиона пакетов в секунду. Оборудование общего назначения было недостаточно мощным для обработки пакетов с такой скоростью. Поэтому в большинстве рабочих сетевых систем обработкой пакетов в каналах данных занимаются контроллеры ASIC и сетевые процессоры NPU. К очевидным недостаткам такого подхода относятся: недостаточная гибкость, высокая стоимость, длительные циклы разработки, зависимость от определенного поставщика. Тем не менее, благодаря доступности более быстрых и дешевых ЦП и программных ускорителей, таких как Data Plane Development Kit (DPDK), можно переложить эту нагрузку на оборудование общего назначения.
Читать полностью »

Пакет Data Plane Development Kit (DPDK) предоставляет высокопроизводительные библиотеки обработки пакетов и драйверы пользовательского пространства. Начиная с Open vSwitch (OVS) версии 2.4 мы имеем возможность использовать оптимизированный с помощью DPDK путь vHost в OVS. Поддержка DPDK была доступна OVS с версии 2.2.

Использование DPDK в OVS дает существенные преимущества с точки зрения производительности. Как и в других приложениях, использующих DPDK, резко повышается сетевая пропускная способность (количество передаваемых сетевых пакетов) при существенном снижении задержек. Кроме того, с помощью библиотек обработки пакетов DPDK была оптимизирована производительность некоторых наиболее важных сегментов OVS.

В этом документе мы рассмотрим настройку OVS с DPDK для использования между виртуальными машинами. Каждый порт будет подключен к отдельной виртуальной машине. Затем мы запустим простой тест пропускной способности iperf3 и сравним производительность с работой конфигурации OVS без DPDK, чтобы оценить, какие преимущества мы получаем в OVS с DPDK.
Читать полностью »