Commit 0b170456 authored by Magnus Karlsson's avatar Magnus Karlsson Committed by Andrii Nakryiko

libbpf: Deprecate AF_XDP support

Deprecate AF_XDP support in libbpf ([0]). This has been moved to
libxdp as it is a better fit for that library. The AF_XDP support only
uses the public libbpf functions and can therefore just use libbpf as
a library from libxdp. The libxdp APIs are exactly the same so it
should just be linking with libxdp instead of libbpf for the AF_XDP
functionality. If not, please submit a bug report. Linking with both
libraries is supported but make sure you link in the correct order so
that the new functions in libxdp are used instead of the deprecated
ones in libbpf.

Libxdp can be found at https://github.com/xdp-project/xdp-tools.

  [0] Closes: https://github.com/libbpf/libbpf/issues/270Signed-off-by: default avatarMagnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Acked-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
Link: https://lore.kernel.org/bpf/20211029090111.4733-1-magnus.karlsson@gmail.com
parent 9741e07e
...@@ -23,6 +23,12 @@ ...@@ -23,6 +23,12 @@
extern "C" { extern "C" {
#endif #endif
/* This whole API has been deprecated and moved to libxdp that can be found at
* https://github.com/xdp-project/xdp-tools. The APIs are exactly the same so
* it should just be linking with libxdp instead of libbpf for this set of
* functionality. If not, please submit a bug report on the aforementioned page.
*/
/* Load-Acquire Store-Release barriers used by the XDP socket /* Load-Acquire Store-Release barriers used by the XDP socket
* library. The following macros should *NOT* be considered part of * library. The following macros should *NOT* be considered part of
* the xsk.h API, and is subject to change anytime. * the xsk.h API, and is subject to change anytime.
...@@ -245,8 +251,10 @@ static inline __u64 xsk_umem__add_offset_to_addr(__u64 addr) ...@@ -245,8 +251,10 @@ static inline __u64 xsk_umem__add_offset_to_addr(__u64 addr)
return xsk_umem__extract_addr(addr) + xsk_umem__extract_offset(addr); return xsk_umem__extract_addr(addr) + xsk_umem__extract_offset(addr);
} }
LIBBPF_API int xsk_umem__fd(const struct xsk_umem *umem); LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp")
LIBBPF_API int xsk_socket__fd(const struct xsk_socket *xsk); int xsk_umem__fd(const struct xsk_umem *umem);
LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp")
int xsk_socket__fd(const struct xsk_socket *xsk);
#define XSK_RING_CONS__DEFAULT_NUM_DESCS 2048 #define XSK_RING_CONS__DEFAULT_NUM_DESCS 2048
#define XSK_RING_PROD__DEFAULT_NUM_DESCS 2048 #define XSK_RING_PROD__DEFAULT_NUM_DESCS 2048
...@@ -263,10 +271,10 @@ struct xsk_umem_config { ...@@ -263,10 +271,10 @@ struct xsk_umem_config {
__u32 flags; __u32 flags;
}; };
LIBBPF_API int xsk_setup_xdp_prog(int ifindex, LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp")
int *xsks_map_fd); int xsk_setup_xdp_prog(int ifindex, int *xsks_map_fd);
LIBBPF_API int xsk_socket__update_xskmap(struct xsk_socket *xsk, LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp")
int xsks_map_fd); int xsk_socket__update_xskmap(struct xsk_socket *xsk, int xsks_map_fd);
/* Flags for the libbpf_flags field. */ /* Flags for the libbpf_flags field. */
#define XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD (1 << 0) #define XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD (1 << 0)
...@@ -280,40 +288,46 @@ struct xsk_socket_config { ...@@ -280,40 +288,46 @@ struct xsk_socket_config {
}; };
/* Set config to NULL to get the default configuration. */ /* Set config to NULL to get the default configuration. */
LIBBPF_API int xsk_umem__create(struct xsk_umem **umem, LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp")
void *umem_area, __u64 size, int xsk_umem__create(struct xsk_umem **umem,
struct xsk_ring_prod *fill, void *umem_area, __u64 size,
struct xsk_ring_cons *comp, struct xsk_ring_prod *fill,
const struct xsk_umem_config *config); struct xsk_ring_cons *comp,
LIBBPF_API int xsk_umem__create_v0_0_2(struct xsk_umem **umem, const struct xsk_umem_config *config);
void *umem_area, __u64 size, LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp")
struct xsk_ring_prod *fill, int xsk_umem__create_v0_0_2(struct xsk_umem **umem,
struct xsk_ring_cons *comp, void *umem_area, __u64 size,
const struct xsk_umem_config *config); struct xsk_ring_prod *fill,
LIBBPF_API int xsk_umem__create_v0_0_4(struct xsk_umem **umem, struct xsk_ring_cons *comp,
void *umem_area, __u64 size, const struct xsk_umem_config *config);
struct xsk_ring_prod *fill, LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp")
struct xsk_ring_cons *comp, int xsk_umem__create_v0_0_4(struct xsk_umem **umem,
const struct xsk_umem_config *config); void *umem_area, __u64 size,
LIBBPF_API int xsk_socket__create(struct xsk_socket **xsk, struct xsk_ring_prod *fill,
const char *ifname, __u32 queue_id, struct xsk_ring_cons *comp,
struct xsk_umem *umem, const struct xsk_umem_config *config);
struct xsk_ring_cons *rx, LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp")
struct xsk_ring_prod *tx, int xsk_socket__create(struct xsk_socket **xsk,
const struct xsk_socket_config *config); const char *ifname, __u32 queue_id,
LIBBPF_API int struct xsk_umem *umem,
xsk_socket__create_shared(struct xsk_socket **xsk_ptr, struct xsk_ring_cons *rx,
const char *ifname, struct xsk_ring_prod *tx,
__u32 queue_id, struct xsk_umem *umem, const struct xsk_socket_config *config);
struct xsk_ring_cons *rx, LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp")
struct xsk_ring_prod *tx, int xsk_socket__create_shared(struct xsk_socket **xsk_ptr,
struct xsk_ring_prod *fill, const char *ifname,
struct xsk_ring_cons *comp, __u32 queue_id, struct xsk_umem *umem,
const struct xsk_socket_config *config); struct xsk_ring_cons *rx,
struct xsk_ring_prod *tx,
struct xsk_ring_prod *fill,
struct xsk_ring_cons *comp,
const struct xsk_socket_config *config);
/* Returns 0 for success and -EBUSY if the umem is still in use. */ /* Returns 0 for success and -EBUSY if the umem is still in use. */
LIBBPF_API int xsk_umem__delete(struct xsk_umem *umem); LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp")
LIBBPF_API void xsk_socket__delete(struct xsk_socket *xsk); int xsk_umem__delete(struct xsk_umem *umem);
LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "AF_XDP support deprecated and moved to libxdp")
void xsk_socket__delete(struct xsk_socket *xsk);
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment