On 01/29/2019 04:12 PM, Magnus Karlsson wrote: > This commit adds AF_XDP support to libbpf. The main reason for this is > to facilitate writing applications that use AF_XDP by offering > higher-level APIs that hide many of the details of the AF_XDP > uapi. This is in the same vein as libbpf facilitates XDP adoption by > offering easy-to-use higher level interfaces of XDP > functionality. Hopefully this will facilitate adoption of AF_XDP, make > applications using it simpler and smaller, and finally also make it > possible for applications to benefit from optimizations in the AF_XDP > user space access code. Previously, people just copied and pasted the > code from the sample application into their application, which is not > desirable. > > The interface is composed of two parts: > > * Low-level access interface to the four rings and the packet > * High-level control plane interface for creating and setting > up umems and af_xdp sockets as well as a simple XDP program. > > Signed-off-by: Magnus Karlsson <magnus.karls...@intel.com> [...] > libbpf ABI > ========== > > diff --git a/tools/lib/bpf/libbpf.map b/tools/lib/bpf/libbpf.map > index 266bc95..d294843 100644 > --- a/tools/lib/bpf/libbpf.map > +++ b/tools/lib/bpf/libbpf.map > @@ -121,6 +121,18 @@ LIBBPF_0.0.1 { > libbpf_prog_type_by_name; > libbpf_set_print; > libbpf_strerror; > + xsk_ring_cons__peek; > + xsk_ring_cons__release; > + xsk_ring_prod__reserve; > + xsk_ring_prod__submit; > + xsk_umem__get_data; > + xsk_umem__get_data_raw; > + xsk_umem__create; > + xsk_socket__create; > + xsk_umem__delete; > + xsk_socket__delete; > + xsk_umem__fd; > + xsk_socket__fd;
This definitely needs to be placed under LIBBPF_0.0.2 where we have bpf_probe_* that were added in this cycle. > local: > *; > }; > diff --git a/tools/lib/bpf/xsk.c b/tools/lib/bpf/xsk.c