pktgen-dpdk !ПАНИКА!: *** Не найдено ни одного порта для использования ***

#dpdk

#dpdk

Вопрос:

я пытаюсь запустить pktgen, но, похоже, он не видит интерфейсы, которые я связываю, так как он дает мне

 !PANIC!: *** Did not find any ports to use ***
 

информация об установке: у меня эта проблема в ubuntu 20.4 и redhat 8.3

 dpdk version= DPDK 20.11.0
ena verison =2.1.0K
pktgen-20.11.3
 

я запускаю с этими конфигурациями:

 pktgen -l 0-3 -n 3 -- -P -m "[1:2].0, [2:3].1"
 

примечание: у меня 4 ядра, и 0 не должен использоваться, поэтому я отправляю через ядро 1 и получаю через ядро 2 для порта o, и я отправляю через ядро 2 и получаю через ядро 3 на порту 1. это неправильная конфигурация?

для интерфейсов здесь приведен статус двух интерфейсов, которые я связываю:

 Network devices using DPDK-compatible driver
============================================
0000:00:06.0 'Elastic Network Adapter (ENA) ec20' drv=vfio-pci unused=ena
0000:00:07.0 'Elastic Network Adapter (ENA) ec20' drv=vfio-pci unused=ena

Network devices using kernel driver
===================================
0000:00:05.0 'Elastic Network Adapter (ENA) ec20' if=eth0 drv=ena unused=vfio-pci *Active*

No 'Baseband' devices detected
==============================

No 'Crypto' devices detected
============================

No 'Eventdev' devices detected
==============================

No 'Mempool' devices detected
=============================

No 'Compress' devices detected
==============================

No 'Misc (rawdev)' devices detected
===================================

No 'Regex' devices detected
===========================
 

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

Комментарии:

1. похоже, что библиотека dpdk не идентифицирует ENA порт, пожалуйста, используйте аргумент --log-level=pmd,8 -w 0000:00:06.0 -w 0000:00:07.0 и повторно запустите приложение pktgen. Поделитесь журналами, обновив тикет. Примечание: Всегда сообщайте версию DPKD, версию ОС, прошивку сетевой карты, версию Pktgen. Я еще не отмечаю тикет missing details , поэтому, пожалуйста, обновите необходимую информацию как можно скорее.

2. где он будет хранить журналы, где искать?

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

4. ничего не отображается. pastebin.com/i9LEBRuv

5. неправильная оценка он отображал соответствующие сведения !PANIC!: *** Did not find any ports to use *** PANIC in pktgen_config_ports(): *** Did not find any ports to use *** . Похоже, у вас действительно нет порта на PCIe 0000:00:06.0

Ответ №1:

При использовании с meson или ninja для построения DPDK он генерирует как статические библиотеки, так и разделяемые библиотеки. Но pkg-config --cflags --libs libdpdk.pc возвращает разделяемую библиотеку для связывания.

Таким образом, при сборке в режиме общей библиотеки для любого приложения DPDK можно

  1. either измените Makefile, чтобы включить связывание с PMD (librte_pmd_ena.so ) явно для того, чтобы конструктор работал
  2. or укажите нужную библиотеку в качестве аргумента DPDK -d librte_pmd_ena.so

судя по обновлению комментариев, похоже, что вы используете сборку общей библиотеки. Поскольку вы не передаете с помощью option -d , конструктор PMD не вызывает probe for ENA PMD . Поэтому, пожалуйста, исправьте это, передав -d librte_pmd_ena.so pktgen cmdline.

Комментарии:

1. я не смог найти librte_pmd_ena.so и поскольку он работает на redhat, а этот файл не существует, я предполагаю, что они меняют имя или около того. любым способом я пытаюсь использовать этот файл, и он работает librte_net_ena.so.21.0. и, наконец, большое вам спасибо 🙂

2. благодарим вас за подтверждение того, что общие библиотеки использовались для создания DPDK pktgen. Должна была быть программная ссылка Linux для librte_net_ena.so to librte_net_ena.so.21.0