On Tue, Apr 02, 2019 at 08:43:48PM +0100, Ferruh Yigit wrote:
> On 4/2/2019 4:46 PM, Xiaolong Ye wrote:
> > Add a new PMD driver for AF_XDP which is a proposed faster version of
> > AF_PACKET interface in Linux. More info about AF_XDP, please refer to [1]
> > [2].
> > 
> > This is the vanilla version PMD which just uses a raw buffer registered as
> > the umem.
> > 
> > [1] https://fosdem.org/2018/schedule/event/af_xdp/
> > [2] https://lwn.net/Articles/745934/
> > 
> > Signed-off-by: Xiaolong Ye <xiaolong...@intel.com>
> 
> <...>
> 
> > @@ -0,0 +1,956 @@
> > +/* SPDX-License-Identifier: BSD-3-Clause
> > + * Copyright(c) 2019 Intel Corporation.
> > + */
> 
> > +#include <bpf/bpf.h>
> > +#include <xsk.h>
> 
> Under linux, both headers are in same 'bpf' folder, why one included as
> 'bpf/bpf.h' but other 'xsk.h'?
> 
> Perhaps this is not problem when headers are installed into system folders, 
> but
> I am compiling using RTE_KERNELDIR, which used in Makefile as:
>  -I$(RTE_KERNELDIR)/tools/lib/bpf

When installed in system folders they will still need the "bpf" prefix. On
my system after running "make headers_install" in libbpf folder, the
headers are placed in "/usr/local/include/bpf/"

> 
> This fails to find 'bpf/bpf.h'
> 
> Also for '-lbpf', shouldn't need to add '-L$(RTE_KERNELDIR)/tools/lib/bpf', to
> new added line in 'rte.app.mk', so that it can find the library?
> 
> I assume you are building in a system with new kernel, I think you need this 
> for
> functionality, where 'xsk.h' is located in that case? Because I was thinking
> building and installing libbpf can solve the issue but it is not installing
> 'xsk.h', not sure why, so not exactly solving.
> 
> if you still need "CFLAGS += -I$(RTE_KERNELDIR)/tools/lib/bpf" for your case,
> does it make sense update as following:
>  CFLAGS += -I$(RTE_KERNELDIR)/tools/lib
>  #include <bpf/xsk.h>

We should not include in any driver a cflag or ldflag that points to the
kernel dir. We should expect the headers for libbpf in a regular include
folder and the library itself in /usr/lib or /usr/local/lib.

/Bruce

Reply via email to