On Mon, Jan 31, 2022 at 05:59:53PM +0000, Ferruh Yigit wrote:
> On 1/28/2022 9:50 AM, Ciara Loftus wrote:
> > AF_XDP support is deprecated in libbpf since v0.7.0 [1]. The libxdp
> > library now provides the functionality which once was in libbpf and
> > which the AF_XDP PMD relies on. This commit updates the AF_XDP meson
> > build to use the libxdp library if a version >= v1.2.2 is available. If
> > it is not available, only versions of libbpf prior to v0.7.0 are
> > allowed, as they still contain the required AF_XDP functionality.
> > 
> > libbpf still remains a dependency even if libxdp is present, as we use
> > libbpf APIs for program loading.
> > 
> > The minimum required kernel version for libxdp for use with AF_XDP is
> > v5.3.  For the library to be fully-featured, a kernel v5.10 or newer is
> > recommended. The full compatibility information can be found in the
> > libxdp README.
> > 
> > v1.2.2 of libxdp includes an important fix required for linking with
> > DPDK which is why this version or greater is required. Meson uses
> > pkg-config to verify the version of libxdp on the system, so it is
> > necessary that the library is discoverable using pkg-config in order
> > for the PMD to use it. To verify this, you can run: pkg-config
> > --modversion libxdp
> > 
> > [1] https://github.com/libbpf/libbpf/commit/277846bc6c15
> > 
> > Signed-off-by: Ciara Loftus <ciara.lof...@intel.com>
> 
> Tested build with combination of following, build looks good libxdp
> 1.2.0, libxdp 1.2.2 libbpf 0.7.0, libbpf 0.4.0
> 
> 
> But while running testpmd can't find the libxdp.so by default [1],
> although setting 'LD_LIBRARY_PATH' works
> (LD_LIBRARY_PATH=/usr/local/lib64/ for my case), this wasn't required for
> libbpf, just checking if this is expected?
> 
> Similarly for 'build/drivers/librte_net_af_xdp.so', ldd can find 'libbpf'
> but not libxdp.so (although they are in same folder): $ ldd
> build/drivers/librte_net_af_xdp.so libxdp.so.1 => not found libbpf.so.0
> => /usr/local/lib64/libbpf.so.0 (0x00007f2ceb86f000) ....
> 
> Again, 'LD_LIBRARY_PATH' works: $ LD_LIBRARY_PATH=/usr/local/lib64/ ldd
> build/drivers/librte_net_af_xdp.so libxdp.so.1 =>
> /usr/local/lib64/libxdp.so.1 (0x00007fefa792e000) libbpf.so.0 =>
> /usr/local/lib64/libbpf.so.0 (0x00007fefa78dc000)
> 
> 
> But same question, why 'LD_LIBRARY_PATH' is not required for libbpf, but
> required for libxdp, any idea?
> 
Did you rerun "ldconfig" to refresh the ldd cache after installing the
new library?

Reply via email to