> On Sep 11, 2018, at 5:49 AM, Amedeo Sapio <[email protected]> wrote:
>
> Dear all,
> I am writing a program that uses dpdk. I wrote the program based on the
> dpdk examples, in particular using the Makefile provided in the examples.
> If i compile the program as an APP (as describe here
> <https://doc.dpdk.org/guides-18.02/prog_guide/build_app.html>), all goes
> well.
Sounds like you and this person need to get together here :-)
https://mails.dpdk.org/archives/users/2018-September/003439.html
> However, my code is part of a larger project, for which the use of a
> separate makefile causes a lot of troubles.
> So I compiled my code as a library, as described in the same page.
> Now, the program that calls the functions in the library (to initialize the
> EAL) is getting this error:
>
Did you call rte_eal_init() first as most of the routines depend on calling
this function before you call the other one.
As I explained the other thread, is that DPDK is not libc and you can not just
pick the functions you want to use for the most part. Some functions are fairly
independent, but not really as work is needed to make sure it has all of the
other inits called.
If you want to use DPDK today, the best method is to make sure you initialize
DPDK correctly and then you can use parts of it for your needs.
As for the code that interacts with your application it is best to have a
directory with just the functions you need to build with DPDK and use these
functions as a bridge to/from your code. Using your header files and DPDK
header files in the same directory or file can cause a number of build
problems, which is why I use this type of method. Some routines in DPDK you can
call without any real problems, but sometimes it makes it easier to write
inline functions or functions that build most independent of DPDK and your
routines. Not sure explained it clearly, but I hope it helps.
BTW, please remove any disclaimers in your email as they do not apply to a
public email list.
> MBUF: error setting mempool handler
> Cannot init mbuf pool
>
> I also made an experiment with the l2fwd example. The example compiled as
> an app works correctly. But if I compile it as a library and then I call
> the functions in this library from another program, I get:
>
> EAL: Error - exiting with code: 1
> Cause: No Ethernet ports - bye
>
> I have one ethernet port using the igb_uio driver (seen from
> dpdk-devbind.py). When I compile my program, I link the following
> libraries: dpdk, pthread, dl, numa. DPDK is compiled from source as
> described here <https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html>.
>
> Thanks for your help,
>
> ---
> Amedeo
>
> --
>
> This message and its contents, including attachments are intended solely
> for the original recipient. If you are not the intended recipient or have
> received this message in error, please notify me immediately and delete
> this message from your computer system. Any unauthorized use or
> distribution is prohibited. Please consider the environment before printing
> this email.
Regards,
Keith