Чтение вывода dpdk - PullRequest
       8

Чтение вывода dpdk

0 голосов
/ 31 августа 2018

Я очень новичок в DPDK, и это новый проект, который мне только что назначен.

Существует аппаратное устройство генерации трафика, подключенное через Ethernet к ПК. Текущая ситуация следующая:

  • Отправка данных с генератора трафика на ПК,
  • DPDK получает его, а затем обрабатывает его соответственно,
  • В конце данные отправляются обратно в генератор трафика.

Цель состоит в том, чтобы:

  • Отправка данных с генератора трафика на ПК,
  • DPDK получает его, а затем обрабатывает его соответственно,
  • Вывод DPDK обрабатывается скриптом Python и затем отправляется на соответствующий порт.

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

Заранее спасибо за ответы и предложения!

1 Ответ

0 голосов
/ 31 августа 2018

Существует множество вариантов интеграции DPDK с другими приложениями, например:

  • Драйвер режима Tun / Tap Poll: https://doc.dpdk.org/guides/nics/tap.html

    Приложение DPDK может перенаправлять трафик на один кран vdev и опрашивать с другого. В то время как python или другое приложение может читать пакеты из одного интерфейса ядра и отправлять в другой.

  • Драйвер режима опроса KNI: https://doc.dpdk.org/guides/nics/kni.html

    То же, что и выше, но с использованием проприетарного (более быстрого) драйвера.

  • Драйвер режима опроса Libpcap: https://doc.dpdk.org/guides/nics/pcap_ring.html

    Приложение DPDK может отправлять пакеты в формате pcap в сокет unix, а приложение python может считывать данные из сокета.

Обратите внимание, что все вышеперечисленные опции не будут обрабатывать более 1M пакетов в секунду, не говоря уже о производительности Python. Будет трудно обрабатывать даже пакеты 1М ...

Если вам нужно обработать более 1 млн PPS, вам, вероятно, стоит поискать что-то еще, вариантов мало ...

Хотя вопрос немного шире, я надеюсь, что теперь у вас мало подсказок для поиска;)

...