DPDK Non-Supported Hardware Usage Question - Kyle Gagnon GDMS
Stephen Hemminger
stephen at networkplumber.org
Thu Dec 1 17:50:02 CET 2022
On Wed, 30 Nov 2022 13:35:26 +0000
"Kyle.Gagnon at gd-ms.com" <Kyle.Gagnon at gd-ms.com> wrote:
> Hello!
>
> My name is Kyle Gagnon and I work at General Dynamics Mission Systems. We are evaluating DPDK and its use. I am currently trying to get DPDK to work on a Xilinx ZCU102 evaluation board. The problem is that the NIC is an onboard ethernet interface so it does not go through any PCI. I won't be able to use an external NIC card so I have to work with what I have. I understand that I can use the PCAP library PMD. Here is my question if you don't mind helping me out!
That will be really slow and limiting. Why use DPDK if there is no native driver support?
>
> I am compiling DPDK through meson and then in a custom application I am writing myself I have to use Makefiles. I need to statically link all of the libraries. So I did that and wrote an extremely basic program that doesn't do much at all. Here it is (I am copying from another computer. This is a C++ application and I am building it for ARM on an x86_64 Ubuntu WSL machine)
>
> DpdkEntry.cpp
>
> #include <iostream>
> #include <string>
>
> #include <rte_eal.h>
> #include <rte_ethdev.h>
> #include <rte_cycles.h>
> #include <rte_lcore.h>
> #include <rte_mbuf.h>
>
> Int main(int argc, char **argv) {
>
> int returnVal;
>
> std::cout << "Setting up EAL environment\n";
>
> returnVal = rte_eal_init(argc, argv);
> if (returnVal < 0) {
> rte_exit(EXIT_FAILURE, "Error with initializing EAL\n");
> }
>
> rte_eal_cleanup();
>
> return 0;
> }
>
> When I run this application through a QEMU emulation of the ZCU102 board I use the following command
>
> dpdk-test -l 0-3 -n 4 -vdev 'net_pcap0,iface=eth0'
>
> I have built librte_net_pcap and linked it in so it is in the application. When I run the above command (using the above source code) I get the following:
>
> EAL: Detected CPU lcores: 4
> EALL Detected NUMA nodes: 1
> EAL: Detected static linkage of DPDK
> EAL: failed to parse device "net_pcap0"
> EAL: Unable to parse device 'net_pcap0,iface=eth0'
> EAL: Error - exiting with code: 1
> Cause: Error with initializing EAL
>
> When I run a testpmd with the same parameters on the same emulated board I am able to use the ethernet port so what am I doing wrong with my custom code? I am going to forward this to my personal email in case I need to follow up with more information (the source code and building is on my personal computer rather than my work computer).
Try adding printfs inside the pcap poll mode driver.
It may not be getting loaded.
More information about the users
mailing list