Запуск примера приложения балансировщика нагрузки DPDK

Я использую DPDK 1.7 и выполнил все шаги, указанные в документах «Краткое руководство» и «Запуск примера приложения», чтобы скомпилировать и выполнить пример приложения под названием «load_balancer».

Приложение Load_balancer содержит определенные ядра ввода-вывода, отвечающие за пакетный ввод-вывод, и рабочие ядра, отвечающие за обработку пакетов. Мои ядра обработки пакетов не получают все пакеты, однако ядра ввода-вывода получают все пакеты.

Это сложное приложение, использующее множество RTE API. Любые идеи о том, что я должен изучить, чтобы решить проблему обработки пакетов?

Я пробовал это на версиях ядра 3.2 и 3.13 с теми же результатами.

Помощь будет высоко оценена.


person Akamai    schedule 06.08.2014    source источник


Ответы (1)


Похоже на проблему сходства потока. Позиция балансировки нагрузки (смещение байта по умолчанию: 29) в приложении балансировщика нагрузки, по-видимому, обрабатывает только пакеты IPv4/IPv6. У меня была такая же проблема с пакетами UDP.

Рассмотрите возможность использования хэш-библиотеки для создания хэшей пакетов в ядрах RX ввода-вывода, а затем используйте хэш для выбора правильного рабочего ядра для пересылки вашего пакета.

Глава 18: http://dpdk.org/doc/intel/dpdk-prog-guide-1.7.0.pdf

person kam    schedule 13.11.2014