Количество портов DPDK должно быть равно одному устройству Ethernet

Я пытаюсь запустить пример скелета из источника DPDK, но всякий раз, когда я пытаюсь построить код после процесса make, я получаю сообщение об ошибке: «количество портов должно быть четным», однако, когда я пытаюсь просмотреть список моих устройств Ethernet все, что я вижу, это только одно устройство (я запускаю пример скелета в Ubuntu в среде рабочей станции vmware)

Я думал о том, чтобы смоделировать другое устройство Ethernet, возможно ли это? что мне делать, чтобы запустить скелетный пример?


person Yzgeav Zohar    schedule 20.10.2016    source источник


Ответы (1)


Я использую виртуальный бокс (с гостевой ОС Ubuntu 16.04) и выполнил большинство инструкций в этих двух руководствах, чтобы протестировать два виртуальных устройства Ethernet:

http://plvision.eu/blog/deploying-intel-dpdk-in-oracle-virtualbox/ http://dpdk.org/doc/quick-start

Я сделал следующее:

а. В виртуальном боксе, чтобы включить два сетевых адаптера с мостом на виртуальной машине, я выбрал настольную версию Intel Pro / 1000 MT:

Настройки ›Сеть› Адаптер 1 ›Мостовой› Тип адаптера ›Intel Pro / 1000 MT Desktop (82540EM)

На виртуальной машине убедитесь, что в вашей среде отображаются два устройства Ethernet.

$ ip addr
2: enp0s3: 
[ more output ommitted ]
3: enp0s8: 
[ more output ommitted ]

б. Установите необходимые компоненты DPDK.

$ sudo apt-get install libpcap-dev gcc make hugepages nim
$ sudo apt-get install linux-headers-generic

Скачайте DPDK, распакуйте и

$ make config T=x86_64-native-linuxapp-gcc
$ sed -ri 's,(PMD_PCAP=).*,\1y,' build/.config
$ make -j2
$ sudo make install

c. Экспорт переменных среды в ~/.bashrc

export RTE_SDK=/usr/local/share/dpdk/
export RTE_TARGET=x86_64-native-linuxapp-gcc

Перезапустите консоль, чтобы получить вновь экспортированные переменные.

d. Включить огромные страницы:

$ sudo sh -c 'echo 64 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages'

е. Затем я запустил такой пример скелета, указав два порта:

$ sudo ./basicfwd -c1 -n1 --vdev=eth_pcap0,iface=enp0s3 --vdev=eth_pcap1,iface=enp0s8
[sudo] password for ubuntu: 
EAL: Detected 2 lcore(s)
EAL: Probing VFIO support...
EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !
PMD: Initializing pmd_pcap for eth_pcap0
PMD: Creating pcap-backed ethdev on numa socket 0
PMD: Initializing pmd_pcap for eth_pcap1
PMD: Creating pcap-backed ethdev on numa socket 0
PMD: bnxt_rte_pmd_init() called for (null)
EAL: PCI device 0000:00:03.0 on NUMA socket -1
EAL:   probe driver: 8086:100e rte_em_pmd
EAL: PCI device 0000:00:08.0 on NUMA socket -1
EAL:   probe driver: 8086:100e rte_em_pmd
Port 0 MAC: 00 00 00 01 02 03
Port 1 MAC: 00 00 00 01 02 03
Core 0 forwarding packets. [Ctrl+C to quit]
person kso    schedule 27.01.2017