#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 ***
. Похоже, у вас действительно нет порта на PCIe0000:00:06.0
Ответ №1:
При использовании с meson или ninja для построения DPDK он генерирует как статические библиотеки, так и разделяемые библиотеки. Но pkg-config --cflags --libs libdpdk.pc
возвращает разделяемую библиотеку для связывания.
Таким образом, при сборке в режиме общей библиотеки для любого приложения DPDK можно
either
измените Makefile, чтобы включить связывание с PMD (librte_pmd_ena.so ) явно для того, чтобы конструктор работал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