xref: /f-stack/dpdk/drivers/net/af_xdp/compat.h (revision 2d9fd380)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2020 Intel Corporation.
3  */
4 
5 #include <bpf/xsk.h>
6 #include <linux/version.h>
7 
8 #if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE && \
9 	defined(RTE_LIBRTE_AF_XDP_PMD_SHARED_UMEM)
10 #define ETH_AF_XDP_SHARED_UMEM 1
11 #endif
12 
13 #ifdef ETH_AF_XDP_SHARED_UMEM
14 static __rte_always_inline int
create_shared_socket(struct xsk_socket ** xsk_ptr,const char * ifname,__u32 queue_id,struct xsk_umem * umem,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)15 create_shared_socket(struct xsk_socket **xsk_ptr,
16 			  const char *ifname,
17 			  __u32 queue_id, struct xsk_umem *umem,
18 			  struct xsk_ring_cons *rx,
19 			  struct xsk_ring_prod *tx,
20 			  struct xsk_ring_prod *fill,
21 			  struct xsk_ring_cons *comp,
22 			  const struct xsk_socket_config *config)
23 {
24 	return xsk_socket__create_shared(xsk_ptr, ifname, queue_id, umem, rx,
25 						tx, fill, comp, config);
26 }
27 #else
28 static __rte_always_inline int
create_shared_socket(struct xsk_socket ** xsk_ptr __rte_unused,const char * ifname __rte_unused,__u32 queue_id __rte_unused,struct xsk_umem * umem __rte_unused,struct xsk_ring_cons * rx __rte_unused,struct xsk_ring_prod * tx __rte_unused,struct xsk_ring_prod * fill __rte_unused,struct xsk_ring_cons * comp __rte_unused,const struct xsk_socket_config * config __rte_unused)29 create_shared_socket(struct xsk_socket **xsk_ptr __rte_unused,
30 			  const char *ifname __rte_unused,
31 			  __u32 queue_id __rte_unused,
32 			  struct xsk_umem *umem __rte_unused,
33 			  struct xsk_ring_cons *rx __rte_unused,
34 			  struct xsk_ring_prod *tx __rte_unused,
35 			  struct xsk_ring_prod *fill __rte_unused,
36 			  struct xsk_ring_cons *comp __rte_unused,
37 			  const struct xsk_socket_config *config __rte_unused)
38 {
39 	return -1;
40 }
41 #endif
42