<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hello!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">DpdkEntry.cpp<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#include <iostream><o:p></o:p></p>
<p class="MsoNormal">#include <string><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">#include <rte_eal.h><o:p></o:p></p>
<p class="MsoNormal">#include <rte_ethdev.h><o:p></o:p></p>
<p class="MsoNormal">#include <rte_cycles.h><o:p></o:p></p>
<p class="MsoNormal">#include <rte_lcore.h><o:p></o:p></p>
<p class="MsoNormal">#include <rte_mbuf.h><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Int main(int argc, char **argv) {<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">               int returnVal;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">               std::cout << “Setting up EAL environment\n”;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">               returnVal = rte_eal_init(argc, argv);<o:p></o:p></p>
<p class="MsoNormal">               if (returnVal < 0) {<o:p></o:p></p>
<p class="MsoNormal">                              rte_exit(EXIT_FAILURE, “Error with initializing EAL\n”);<o:p></o:p></p>
<p class="MsoNormal">               }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">               rte_eal_cleanup();<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">               return 0;<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">When I run this application through a QEMU emulation of the ZCU102 board I use the following command<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">dpdk-test -l 0-3 -n 4 –vdev ‘net_pcap0,iface=eth0’<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">EAL: Detected CPU lcores: 4<o:p></o:p></p>
<p class="MsoNormal">EALL Detected NUMA nodes: 1<o:p></o:p></p>
<p class="MsoNormal">EAL: Detected static linkage of DPDK<o:p></o:p></p>
<p class="MsoNormal">EAL: failed to parse device “net_pcap0”<o:p></o:p></p>
<p class="MsoNormal">EAL: Unable to parse device ‘net_pcap0,iface=eth0’<o:p></o:p></p>
<p class="MsoNormal">EAL: Error – exiting with code: 1<o:p></o:p></p>
<p class="MsoNormal">  Cause: Error with initializing EAL<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thank you!<o:p></o:p></p>
<p class="MsoNormal"><span style="color:#4472C4">Kyle Gagnon<o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="color:#4472C4">General Dynamics Mission Systems<o:p></o:p></span></b></p>
<p class="MsoNormal"><span style="color:#4472C4">150 Rustcraft Rd | Dedham, MA 02026<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#4472C4">(781) 410 - 3820 | Kyle.Gagnon@gd-ms.com<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>