Não há solução direta para isso. No entanto, existem poucas opções para executar um aplicativo DPDK sem usar NICs físicas:
Executando o DPDK dentro de uma máquina virtual
- Execute uma máquina virtual com quantos NICs você precisar.
- Dentro da Virtual Machine, ligue os NICs ao UIO.
- Dentro da Virtual Machine, execute o DPDK e ele deverá funcionar bem com as NICs dentro da Virtual Machine.
Para mais informações, consulte o Driver do modo de pesquisa DPDK para NIC Virtualizada Emulada .
Por favor, note que esta opção pode não estar disponível na VM, ou seja, você pode não ser capaz de executar uma VM dentro de uma VM.
Usando o dispositivo virtual DPDK
- Compile o DPDK com
libpcap
support. - Configure o host para executar um aplicativo DPDK como de costume (por exemplo, ativar páginas enormes, etc.).
- Não ligue nenhum NIC ao UIO.
- Crie poucas interfaces TUN / TAP, conecte-as com uma NIC física.
-
Execute um aplicativo DPDK como de costume, mas passe alguns
--vdev
argumentos para criar alguns dispositivos virtuais, por exemplo:testpmd -l 0-3 -n 4 \ --vdev 'net_pcap0, iface = tun0' --vdev 'net_pcap1, iface = tun1' ...
Para mais informações, por favor dê uma olhada no Driver do modo de pesquisa do DPDK libpcap .
Por favor, note que esta opção irá reduzir significativamente o desempenho do DPDK devido ao uso da funcionalidade do kernel Linux e da biblioteca pcap.
Usando funções virtuais da NIC:
- Configurar o suporte do SR-IOV no host.
- Configure algumas funções virtuais na NIC host.
- No host, ligue algumas Funções Virtuais NIV a
vfio-pci
- No host, execute o DPDK e ele deve funcionar bem com as Funções virtuais do NIC.
Para uma descrição geral do SR-IOV, você pode encontrar o Driver de Função Virtual Intel do DPDK útil.
Por favor, note que esta opção pode não estar disponível na VM.