Балансировка нагрузки в PCPP и DPDKC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Балансировка нагрузки в PCPP и DPDK

Сообщение Anonymous »

Я пытался сбалансировать нагрузку полученных пакетов по нескольким физическим очередям приема (4 очереди).
Я назначил ядро ​​каждой очереди, чтобы получать пакеты из нее.
После использования DPDK реализацию получения статистики для проверки того, какие очереди получили пакеты, я вижу, что только одна очередь получает все пакеты.
Я пробовал использовать RSS для балансировки нагрузки, но в моем случае почти каждый заголовок в каждом пакете, который я получаю, одинаков - Единственная разница - это полезная нагрузка.
Мои вопросы:
  • Есть ли способ использовать RSS и хэш в соответствии с данными полезной нагрузки? >
  • Есть ли какой-нибудь способ выполнить простое распределение пакетов по циклическому принципу в каждую очередь приема? Например, если я получу 16 пакетов, они будут распределены равномерно по всем 4 очередям.
(Редактировать)
Поскольку я не предоставил никаких дополнительная информация о моем варианте использования (по моей вине)
Я уточню -
Чтобы предоставить дополнительный контекст:
  • Сведения о сетевом адаптере: Я использую плату LX2160A с Архитектура DPAA2. Максимальное поддерживаемое представление хэш-функции в моем случае — 0xFFFF (согласно API dpdk), что указывает на то, что я не могу использовать RSS_PORT (представление 0x10000) в качестве хеш-функции для балансировки нагрузки.
  • Структура пакета: Пакеты, с которыми я работаю, имеют в основном идентичные заголовки; различия заключаются в полезной нагрузке. Это делает традиционные конфигурации хэширования RSS (например, хеширование L3/L4) неэффективными для моего варианта использования, единственной разницей иногда может быть порт назначения.
  • Входы RSS: я изучил возможность использования из RTE_ETH_RSS_L2_PAYLOAD, но неясно, поддерживает ли архитектура DPAA2 использование полезных данных для ввода RSS. Мне не удалось найти конкретную документацию о расширении RSS с помощью хеширования полезной нагрузки для этого сетевого адаптера.
Учитывая эти ограничения:
  • Динамические профили встроенного ПО. Существуют ли предоставленные поставщиком динамические профили встроенного ПО для DPAA2, которые могут включать RSS на основе полезной нагрузки или дополнительные параметры конфигурации RSS? Если да, то где я могу найти соответствующую документацию или привязки в DPDK?
  • Хеширование контрольной суммы IPv4: мой сетевой адаптер поддерживает хеш-функции 0xFFFF, но я не уверен, можно ли использовать RTE_ETH_RSS_IPV4_CHKSUM в этой настройке. Кто-нибудь добился успеха в этом на сетевых адаптерах DPAA2?
  • Распределение по циклическому принципу: поскольку одного RSS кажется недостаточным,
    предусматривает ли DPAA2 аппаратный механизм для циклического распределения? пакет Робина
    распределение? Если нет, существует ли эффективный программный способ
    добиться этого в DPDK, сохраняя при этом низкую задержку?
Наконец, если настроить пакет Генератор рандомизации исходных портов L4 является жизнеспособным вариантом. Не могли бы вы порекомендовать инструменты или методы для эффективного достижения этой цели?
Я добавлю, что в моем случае мне все равно, какой IP-адрес назначения каждый пакет удерживается, возможно, это приемлемый вариант использовать для хеширования?

Подробнее здесь: https://stackoverflow.com/questions/792 ... p-and-dpdk
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»