/kernel/linux/linux-5.10/include/net/ |
H A D | xdp.h | 2 /* include/net/xdp.h 84 #define xdp_data_hard_end(xdp) \ 85 ((xdp)->data_hard_start + (xdp)->frame_sz - \ 89 xdp_get_shared_info_from_buff(struct xdp_buff *xdp) in xdp_get_shared_info_from_buff() argument 91 return (struct skb_shared_info *)xdp_data_hard_end(xdp); in xdp_get_shared_info_from_buff() 134 struct xdp_frame *xdp_convert_zc_to_xdp_frame(struct xdp_buff *xdp); 137 void xdp_convert_frame_to_buff(struct xdp_frame *frame, struct xdp_buff *xdp) in xdp_convert_frame_to_buff() argument 139 xdp->data_hard_start = frame->data - frame->headroom - sizeof(*frame); in xdp_convert_frame_to_buff() 140 xdp in xdp_convert_frame_to_buff() 147 xdp_update_frame_from_buff(struct xdp_buff *xdp, struct xdp_frame *xdp_frame) xdp_update_frame_from_buff() argument 176 xdp_convert_buff_to_frame(struct xdp_buff *xdp) xdp_convert_buff_to_frame() argument 229 xdp_set_data_meta_invalid(struct xdp_buff *xdp) xdp_set_data_meta_invalid() argument 235 xdp_data_meta_unsupported(const struct xdp_buff *xdp) xdp_data_meta_unsupported() argument [all...] |
H A D | xdp_sock_drv.h | 60 static inline dma_addr_t xsk_buff_xdp_get_dma(struct xdp_buff *xdp) in xsk_buff_xdp_get_dma() argument 62 struct xdp_buff_xsk *xskb = container_of(xdp, struct xdp_buff_xsk, xdp); in xsk_buff_xdp_get_dma() 67 static inline dma_addr_t xsk_buff_xdp_get_frame_dma(struct xdp_buff *xdp) in xsk_buff_xdp_get_frame_dma() argument 69 struct xdp_buff_xsk *xskb = container_of(xdp, struct xdp_buff_xsk, xdp); in xsk_buff_xdp_get_frame_dma() 84 static inline void xsk_buff_free(struct xdp_buff *xdp) in xsk_buff_free() argument 86 struct xdp_buff_xsk *xskb = container_of(xdp, struct xdp_buff_xsk, xdp); in xsk_buff_free() 102 static inline void xsk_buff_dma_sync_for_cpu(struct xdp_buff *xdp, struc argument 193 xsk_buff_xdp_get_dma(struct xdp_buff *xdp) xsk_buff_xdp_get_dma() argument 198 xsk_buff_xdp_get_frame_dma(struct xdp_buff *xdp) xsk_buff_xdp_get_frame_dma() argument 213 xsk_buff_free(struct xdp_buff *xdp) xsk_buff_free() argument 228 xsk_buff_dma_sync_for_cpu(struct xdp_buff *xdp, struct xsk_buff_pool *pool) xsk_buff_dma_sync_for_cpu() argument [all...] |
/kernel/linux/linux-6.6/include/net/ |
H A D | xdp.h | 2 /* include/net/xdp.h 74 XDP_FLAGS_HAS_FRAGS = BIT(0), /* non-linear xdp buff */ 75 XDP_FLAGS_FRAGS_PF_MEMALLOC = BIT(1), /* xdp paged memory is under 91 static __always_inline bool xdp_buff_has_frags(struct xdp_buff *xdp) in xdp_buff_has_frags() argument 93 return !!(xdp->flags & XDP_FLAGS_HAS_FRAGS); in xdp_buff_has_frags() 96 static __always_inline void xdp_buff_set_frags_flag(struct xdp_buff *xdp) in xdp_buff_set_frags_flag() argument 98 xdp->flags |= XDP_FLAGS_HAS_FRAGS; in xdp_buff_set_frags_flag() 101 static __always_inline void xdp_buff_clear_frags_flag(struct xdp_buff *xdp) in xdp_buff_clear_frags_flag() argument 103 xdp->flags &= ~XDP_FLAGS_HAS_FRAGS; in xdp_buff_clear_frags_flag() 106 static __always_inline bool xdp_buff_is_frag_pfmemalloc(struct xdp_buff *xdp) in xdp_buff_is_frag_pfmemalloc() argument 111 xdp_buff_set_frag_pfmemalloc(struct xdp_buff *xdp) xdp_buff_set_frag_pfmemalloc() argument 117 xdp_init_buff(struct xdp_buff *xdp, u32 frame_sz, struct xdp_rxq_info *rxq) xdp_init_buff() argument 125 xdp_prepare_buff(struct xdp_buff *xdp, unsigned char *hard_start, int headroom, int data_len, const bool meta_valid) xdp_prepare_buff() argument 147 xdp_get_shared_info_from_buff(struct xdp_buff *xdp) xdp_get_shared_info_from_buff() argument 152 xdp_get_buff_len(struct xdp_buff *xdp) xdp_get_buff_len() argument 252 xdp_convert_frame_to_buff(struct xdp_frame *frame, struct xdp_buff *xdp) xdp_convert_frame_to_buff() argument 263 xdp_update_frame_from_buff(struct xdp_buff *xdp, struct xdp_frame *xdp_frame) xdp_update_frame_from_buff() argument 293 xdp_convert_buff_to_frame(struct xdp_buff *xdp) xdp_convert_buff_to_frame() argument 359 xdp_set_data_meta_invalid(struct xdp_buff *xdp) xdp_set_data_meta_invalid() argument 365 xdp_data_meta_unsupported(const struct xdp_buff *xdp) xdp_data_meta_unsupported() argument 482 bpf_prog_run_xdp(const struct bpf_prog *prog, struct xdp_buff *xdp) bpf_prog_run_xdp() argument [all...] |
H A D | xdp_sock_drv.h | 53 return pool->heads[0].xdp.rxq->napi_id; in xsk_pool_get_napi_id() 73 static inline dma_addr_t xsk_buff_xdp_get_dma(struct xdp_buff *xdp) in xsk_buff_xdp_get_dma() argument 75 struct xdp_buff_xsk *xskb = container_of(xdp, struct xdp_buff_xsk, xdp); in xsk_buff_xdp_get_dma() 80 static inline dma_addr_t xsk_buff_xdp_get_frame_dma(struct xdp_buff *xdp) in xsk_buff_xdp_get_frame_dma() argument 82 struct xdp_buff_xsk *xskb = container_of(xdp, struct xdp_buff_xsk, xdp); in xsk_buff_xdp_get_frame_dma() 98 static inline u32 xsk_buff_alloc_batch(struct xsk_buff_pool *pool, struct xdp_buff **xdp, u32 max) in xsk_buff_alloc_batch() argument 100 return xp_alloc_batch(pool, xdp, max); in xsk_buff_alloc_batch() 108 static inline void xsk_buff_free(struct xdp_buff *xdp) in xsk_buff_free() argument 127 xsk_buff_add_frag(struct xdp_buff *xdp) xsk_buff_add_frag() argument 167 xsk_buff_set_size(struct xdp_buff *xdp, u32 size) xsk_buff_set_size() argument 186 xsk_buff_dma_sync_for_cpu(struct xdp_buff *xdp, struct xsk_buff_pool *pool) xsk_buff_dma_sync_for_cpu() argument 287 xsk_buff_xdp_get_dma(struct xdp_buff *xdp) xsk_buff_xdp_get_dma() argument 292 xsk_buff_xdp_get_frame_dma(struct xdp_buff *xdp) xsk_buff_xdp_get_frame_dma() argument 307 xsk_buff_alloc_batch(struct xsk_buff_pool *pool, struct xdp_buff **xdp, u32 max) xsk_buff_alloc_batch() argument 317 xsk_buff_free(struct xdp_buff *xdp) xsk_buff_free() argument 321 xsk_buff_add_frag(struct xdp_buff *xdp) xsk_buff_add_frag() argument 339 xsk_buff_set_size(struct xdp_buff *xdp, u32 size) xsk_buff_set_size() argument 354 xsk_buff_dma_sync_for_cpu(struct xdp_buff *xdp, struct xsk_buff_pool *pool) xsk_buff_dma_sync_for_cpu() argument [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/ |
H A D | rx.c | 5 #include "en/xdp.h" 32 struct xdp_buff *xdp = wi->umr.dma_info[page_idx].xsk; in mlx5e_xsk_skb_from_cqe_mpwrq_linear() local 41 /* head_offset is not used in this function, because xdp->data and the in mlx5e_xsk_skb_from_cqe_mpwrq_linear() 48 xdp->data_end = xdp->data + cqe_bcnt32; in mlx5e_xsk_skb_from_cqe_mpwrq_linear() 49 xdp_set_data_meta_invalid(xdp); in mlx5e_xsk_skb_from_cqe_mpwrq_linear() 50 xsk_buff_dma_sync_for_cpu(xdp, rq->xsk_pool); in mlx5e_xsk_skb_from_cqe_mpwrq_linear() 51 net_prefetch(xdp->data); in mlx5e_xsk_skb_from_cqe_mpwrq_linear() 68 if (likely(mlx5e_xdp_handle(rq, NULL, &cqe_bcnt32, xdp))) { in mlx5e_xsk_skb_from_cqe_mpwrq_linear() 77 return mlx5e_xsk_construct_skb(rq, xdp in mlx5e_xsk_skb_from_cqe_mpwrq_linear() 85 struct xdp_buff *xdp = wi->di->xsk; mlx5e_xsk_skb_from_cqe_linear() local [all...] |
/kernel/linux/linux-5.10/drivers/net/hyperv/ |
H A D | netvsc_bpf.c | 16 #include <net/xdp.h> 24 struct xdp_buff *xdp) in netvsc_run_xdp() 32 xdp->data_hard_start = NULL; in netvsc_run_xdp() 47 xdp->data_hard_start = page_address(page); in netvsc_run_xdp() 48 xdp->data = xdp->data_hard_start + NETVSC_XDP_HDRM; in netvsc_run_xdp() 49 xdp_set_data_meta_invalid(xdp); in netvsc_run_xdp() 50 xdp->data_end = xdp->data + len; in netvsc_run_xdp() 51 xdp in netvsc_run_xdp() 23 netvsc_run_xdp(struct net_device *ndev, struct netvsc_channel *nvchan, struct xdp_buff *xdp) netvsc_run_xdp() argument 137 struct netdev_bpf xdp; netvsc_vf_setxdp() local [all...] |
/kernel/linux/linux-6.6/tools/testing/selftests/bpf/progs/ |
H A D | xdp_features.c | 65 xdp_process_echo_packet(struct xdp_md *xdp, bool dut) in xdp_process_echo_packet() argument 67 void *data_end = (void *)(long)xdp->data_end; in xdp_process_echo_packet() 68 void *data = (void *)(long)xdp->data; in xdp_process_echo_packet() 135 xdp_update_stats(struct xdp_md *xdp, bool tx, bool dut) in xdp_update_stats() argument 139 if (xdp_process_echo_packet(xdp, tx)) in xdp_update_stats() 155 SEC("xdp") 156 int xdp_tester_check_tx(struct xdp_md *xdp) in xdp_tester_check_tx() argument 158 xdp_update_stats(xdp, true, false); in xdp_tester_check_tx() 163 SEC("xdp") 164 int xdp_tester_check_rx(struct xdp_md *xdp) in xdp_tester_check_rx() argument 174 xdp_do_pass(struct xdp_md *xdp) xdp_do_pass() argument 182 xdp_do_drop(struct xdp_md *xdp) xdp_do_drop() argument 191 xdp_do_aborted(struct xdp_md *xdp) xdp_do_aborted() argument 200 xdp_do_tx(struct xdp_md *xdp) xdp_do_tx() argument 217 xdp_do_redirect(struct xdp_md *xdp) xdp_do_redirect() argument 226 BPF_PROG(xdp_exception, const struct net_device *dev, const struct bpf_prog *xdp, __u32 act) BPF_PROG() argument 252 xdp_do_redirect_cpumap(struct xdp_md *xdp) xdp_do_redirect_cpumap() argument [all...] |
H A D | test_xdp_do_redirect.c | 28 SEC("xdp") 29 int xdp_redirect(struct xdp_md *xdp) in xdp_redirect() argument 31 __u32 *metadata = (void *)(long)xdp->data_meta; in xdp_redirect() 32 void *data_end = (void *)(long)xdp->data_end; in xdp_redirect() 33 void *data = (void *)(long)xdp->data; in xdp_redirect() 41 if (xdp->ingress_ifindex != ifindex_in) in xdp_redirect() 55 if (bpf_xdp_adjust_meta(xdp, sizeof(__u64))) in xdp_redirect() 85 SEC("xdp") 86 int xdp_count_pkts(struct xdp_md *xdp) in xdp_count_pkts() argument 88 void *data = (void *)(long)xdp in xdp_count_pkts() [all...] |
H A D | test_xdp.c | 78 static __always_inline int handle_ipv4(struct xdp_md *xdp) in handle_ipv4() argument 80 void *data_end = (void *)(long)xdp->data_end; in handle_ipv4() 81 void *data = (void *)(long)xdp->data; in handle_ipv4() 111 if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct iphdr))) in handle_ipv4() 114 data = (void *)(long)xdp->data; in handle_ipv4() 115 data_end = (void *)(long)xdp->data_end; in handle_ipv4() 151 static __always_inline int handle_ipv6(struct xdp_md *xdp) in handle_ipv6() argument 153 void *data_end = (void *)(long)xdp->data_end; in handle_ipv6() 154 void *data = (void *)(long)xdp->data; in handle_ipv6() 181 if (bpf_xdp_adjust_head(xdp, in handle_ipv6() 212 _xdp_tx_iptunnel(struct xdp_md *xdp) _xdp_tx_iptunnel() argument [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/broadcom/bnxt/ |
H A D | bnxt_xdp.c | 28 struct xdp_buff *xdp) in bnxt_xmit_bd() 38 if (xdp && xdp_buff_has_frags(xdp)) { in bnxt_xmit_bd() 39 sinfo = xdp_get_shared_info_from_buff(xdp); in bnxt_xmit_bd() 47 if (xdp) in bnxt_xmit_bd() 48 tx_buf->page = virt_to_head_page(xdp->data); in bnxt_xmit_bd() 97 struct xdp_buff *xdp) in __bnxt_xmit_xdp() 101 tx_buf = bnxt_xmit_bd(bp, txr, mapping, len, xdp); in __bnxt_xmit_xdp() 184 struct xdp_buff *xdp) in bnxt_xdp_buff_init() 199 xdp_init_buff(xdp, bufle in bnxt_xdp_buff_init() 25 bnxt_xmit_bd(struct bnxt *bp, struct bnxt_tx_ring_info *txr, dma_addr_t mapping, u32 len, struct xdp_buff *xdp) bnxt_xmit_bd() argument 95 __bnxt_xmit_xdp(struct bnxt *bp, struct bnxt_tx_ring_info *txr, dma_addr_t mapping, u32 len, u16 rx_prod, struct xdp_buff *xdp) __bnxt_xmit_xdp() argument 182 bnxt_xdp_buff_init(struct bnxt *bp, struct bnxt_rx_ring_info *rxr, u16 cons, u8 *data_ptr, unsigned int len, struct xdp_buff *xdp) bnxt_xdp_buff_init() argument 203 bnxt_xdp_buff_frags_free(struct bnxt_rx_ring_info *rxr, struct xdp_buff *xdp) bnxt_xdp_buff_frags_free() argument 224 bnxt_rx_xdp(struct bnxt *bp, struct bnxt_rx_ring_info *rxr, u16 cons, struct xdp_buff xdp, struct page *page, u8 **data_ptr, unsigned int *len, u8 *event) bnxt_rx_xdp() argument 363 struct xdp_frame *xdp = frames[i]; bnxt_xdp_xmit() local 452 bnxt_xdp(struct net_device *dev, struct netdev_bpf *xdp) bnxt_xdp() argument 469 bnxt_xdp_build_skb(struct bnxt *bp, struct sk_buff *skb, u8 num_frags, struct page_pool *pool, struct xdp_buff *xdp, struct rx_cmp_ext *rxcmp1) bnxt_xdp_build_skb() argument [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/intel/ixgbe/ |
H A D | ixgbe_xsk.c | 6 #include <net/xdp.h> 99 struct xdp_buff *xdp) in ixgbe_run_xdp_zc() 108 act = bpf_prog_run_xdp(xdp_prog, xdp); in ixgbe_run_xdp_zc() 111 err = xdp_do_redirect(rx_ring->netdev, xdp, xdp_prog); in ixgbe_run_xdp_zc() 122 xdpf = xdp_convert_buff_to_frame(xdp); in ixgbe_run_xdp_zc() 161 bi->xdp = xsk_buff_alloc(rx_ring->xsk_pool); in ixgbe_alloc_rx_buffers_zc() 162 if (!bi->xdp) { in ixgbe_alloc_rx_buffers_zc() 167 dma = xsk_buff_xdp_get_dma(bi->xdp); in ixgbe_alloc_rx_buffers_zc() 209 unsigned int metasize = bi->xdp->data - bi->xdp in ixgbe_construct_skb_zc() 97 ixgbe_run_xdp_zc(struct ixgbe_adapter *adapter, struct ixgbe_ring *rx_ring, struct xdp_buff *xdp) ixgbe_run_xdp_zc() argument [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/intel/ixgbe/ |
H A D | ixgbe_xsk.c | 6 #include <net/xdp.h> 99 struct xdp_buff *xdp) in ixgbe_run_xdp_zc() 108 act = bpf_prog_run_xdp(xdp_prog, xdp); in ixgbe_run_xdp_zc() 111 err = xdp_do_redirect(rx_ring->netdev, xdp, xdp_prog); in ixgbe_run_xdp_zc() 125 xdpf = xdp_convert_buff_to_frame(xdp); in ixgbe_run_xdp_zc() 168 bi->xdp = xsk_buff_alloc(rx_ring->xsk_pool); in ixgbe_alloc_rx_buffers_zc() 169 if (!bi->xdp) { in ixgbe_alloc_rx_buffers_zc() 174 dma = xsk_buff_xdp_get_dma(bi->xdp); in ixgbe_alloc_rx_buffers_zc() 214 const struct xdp_buff *xdp) in ixgbe_construct_skb_zc() 216 unsigned int totalsize = xdp in ixgbe_construct_skb_zc() 97 ixgbe_run_xdp_zc(struct ixgbe_adapter *adapter, struct ixgbe_ring *rx_ring, struct xdp_buff *xdp) ixgbe_run_xdp_zc() argument 213 ixgbe_construct_skb_zc(struct ixgbe_ring *rx_ring, const struct xdp_buff *xdp) ixgbe_construct_skb_zc() argument [all...] |
/kernel/linux/linux-5.10/samples/bpf/ |
H A D | xdp_tx_iptunnel_kern.c | 77 static __always_inline int handle_ipv4(struct xdp_md *xdp) in handle_ipv4() argument 79 void *data_end = (void *)(long)xdp->data_end; in handle_ipv4() 80 void *data = (void *)(long)xdp->data; in handle_ipv4() 112 if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct iphdr))) in handle_ipv4() 115 data = (void *)(long)xdp->data; in handle_ipv4() 116 data_end = (void *)(long)xdp->data_end; in handle_ipv4() 152 static __always_inline int handle_ipv6(struct xdp_md *xdp) in handle_ipv6() argument 154 void *data_end = (void *)(long)xdp->data_end; in handle_ipv6() 155 void *data = (void *)(long)xdp->data; in handle_ipv6() 184 if (bpf_xdp_adjust_head(xdp, in handle_ipv6() 216 _xdp_tx_iptunnel(struct xdp_md *xdp) _xdp_tx_iptunnel() argument [all...] |
H A D | xdp_adjust_tail_kern.c | 70 static __always_inline int send_icmp4_too_big(struct xdp_md *xdp) in send_icmp4_too_big() argument 74 if (bpf_xdp_adjust_head(xdp, 0 - headroom)) in send_icmp4_too_big() 76 void *data = (void *)(long)xdp->data; in send_icmp4_too_big() 77 void *data_end = (void *)(long)xdp->data_end; in send_icmp4_too_big() 120 static __always_inline int handle_ipv4(struct xdp_md *xdp) in handle_ipv4() argument 122 void *data_end = (void *)(long)xdp->data_end; in handle_ipv4() 123 void *data = (void *)(long)xdp->data; in handle_ipv4() 129 if (bpf_xdp_adjust_tail(xdp, 0 - offset)) in handle_ipv4() 131 return send_icmp4_too_big(xdp); in handle_ipv4() 137 int _xdp_icmp(struct xdp_md *xdp) in _xdp_icmp() argument [all...] |
/kernel/linux/linux-6.6/samples/bpf/ |
H A D | xdp_tx_iptunnel_kern.c | 77 static __always_inline int handle_ipv4(struct xdp_md *xdp) in handle_ipv4() argument 79 void *data_end = (void *)(long)xdp->data_end; in handle_ipv4() 80 void *data = (void *)(long)xdp->data; in handle_ipv4() 112 if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct iphdr))) in handle_ipv4() 115 data = (void *)(long)xdp->data; in handle_ipv4() 116 data_end = (void *)(long)xdp->data_end; in handle_ipv4() 152 static __always_inline int handle_ipv6(struct xdp_md *xdp) in handle_ipv6() argument 154 void *data_end = (void *)(long)xdp->data_end; in handle_ipv6() 155 void *data = (void *)(long)xdp->data; in handle_ipv6() 184 if (bpf_xdp_adjust_head(xdp, in handle_ipv6() 216 _xdp_tx_iptunnel(struct xdp_md *xdp) _xdp_tx_iptunnel() argument [all...] |
H A D | xdp_adjust_tail_kern.c | 70 static __always_inline int send_icmp4_too_big(struct xdp_md *xdp) in send_icmp4_too_big() argument 74 if (bpf_xdp_adjust_head(xdp, 0 - headroom)) in send_icmp4_too_big() 76 void *data = (void *)(long)xdp->data; in send_icmp4_too_big() 77 void *data_end = (void *)(long)xdp->data_end; in send_icmp4_too_big() 120 static __always_inline int handle_ipv4(struct xdp_md *xdp) in handle_ipv4() argument 122 void *data_end = (void *)(long)xdp->data_end; in handle_ipv4() 123 void *data = (void *)(long)xdp->data; in handle_ipv4() 129 if (bpf_xdp_adjust_tail(xdp, 0 - offset)) in handle_ipv4() 131 return send_icmp4_too_big(xdp); in handle_ipv4() 137 int _xdp_icmp(struct xdp_md *xdp) in _xdp_icmp() argument [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/netronome/nfp/ |
H A D | nfp_net_xsk.c | 9 #include <trace/events/xdp.h> 18 struct xdp_buff *xdp) in nfp_net_xsk_rx_bufs_stash() 27 rx_ring->xsk_rxbufs[idx].xdp = xdp; in nfp_net_xsk_rx_bufs_stash() 29 xsk_buff_xdp_get_frame_dma(xdp) + headroom; in nfp_net_xsk_rx_bufs_stash() 35 rxbuf->xdp = NULL; in nfp_net_xsk_rx_unstash() 40 if (rxbuf->xdp) in nfp_net_xsk_rx_free() 41 xsk_buff_free(rxbuf->xdp); in nfp_net_xsk_rx_free() 62 struct xdp_buff *xdp; in nfp_net_xsk_rx_ring_fill_freelist() local 67 xdp in nfp_net_xsk_rx_ring_fill_freelist() 17 nfp_net_xsk_rx_bufs_stash(struct nfp_net_rx_ring *rx_ring, unsigned int idx, struct xdp_buff *xdp) nfp_net_xsk_rx_bufs_stash() argument [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/intel/ice/ |
H A D | ice_xsk.c | 6 #include <net/xdp.h> 444 * @xdp: SW ring of xdp_buff that will hold the buffers 455 static u16 ice_fill_rx_descs(struct xsk_buff_pool *pool, struct xdp_buff **xdp, in ice_fill_rx_descs() argument 462 buffs = xsk_buff_alloc_batch(pool, xdp, count); in ice_fill_rx_descs() 464 dma = xsk_buff_xdp_get_dma(*xdp); in ice_fill_rx_descs() 469 xdp++; in ice_fill_rx_descs() 492 struct xdp_buff **xdp; in __ice_alloc_rx_bufs_zc() local 495 xdp = ice_xdp_buf(rx_ring, ntu); in __ice_alloc_rx_bufs_zc() 498 nb_buffs_extra = ice_fill_rx_descs(rx_ring->xsk_pool, xdp, in __ice_alloc_rx_bufs_zc() 506 xdp in __ice_alloc_rx_bufs_zc() 559 ice_construct_skb_zc(struct ice_rx_ring *rx_ring, struct xdp_buff *xdp) ice_construct_skb_zc() argument 685 ice_xmit_xdp_tx_zc(struct xdp_buff *xdp, struct ice_tx_ring *xdp_ring) ice_xmit_xdp_tx_zc() argument 766 ice_run_xdp_zc(struct ice_rx_ring *rx_ring, struct xdp_buff *xdp, struct bpf_prog *xdp_prog, struct ice_tx_ring *xdp_ring) ice_run_xdp_zc() argument 810 ice_add_xsk_frag(struct ice_rx_ring *rx_ring, struct xdp_buff *first, struct xdp_buff *xdp, const unsigned int size) ice_add_xsk_frag() argument 871 struct xdp_buff *xdp; ice_clean_rx_irq_zc() local 1170 struct xdp_buff *xdp = *ice_xdp_buf(rx_ring, ntc); ice_xsk_clean_rx_ring() local [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/microchip/lan966x/ |
H A D | lan966x_xdp.c | 9 static int lan966x_xdp_setup(struct net_device *dev, struct netdev_bpf *xdp) in lan966x_xdp_setup() argument 18 NL_SET_ERR_MSG_MOD(xdp->extack, in lan966x_xdp_setup() 19 "Allow to set xdp only when using fdma"); in lan966x_xdp_setup() 24 old_prog = xchg(&port->xdp_prog, xdp->prog); in lan966x_xdp_setup() 43 int lan966x_xdp(struct net_device *dev, struct netdev_bpf *xdp) in lan966x_xdp() argument 45 switch (xdp->command) { in lan966x_xdp() 47 return lan966x_xdp_setup(dev, xdp); in lan966x_xdp() 79 struct xdp_buff xdp; in lan966x_xdp_run() local 82 xdp_init_buff(&xdp, PAGE_SIZE << lan966x->rx.page_order, in lan966x_xdp_run() 84 xdp_prepare_buff(&xdp, page_addres in lan966x_xdp_run() [all...] |
/kernel/linux/linux-6.6/drivers/net/hyperv/ |
H A D | netvsc_bpf.c | 17 #include <net/xdp.h> 25 struct xdp_buff *xdp) in netvsc_run_xdp() 35 xdp->data_hard_start = NULL; in netvsc_run_xdp() 56 xdp_init_buff(xdp, PAGE_SIZE, &nvchan->xdp_rxq); in netvsc_run_xdp() 57 xdp_prepare_buff(xdp, page_address(page), NETVSC_XDP_HDRM, len, false); in netvsc_run_xdp() 59 memcpy(xdp->data, data, len); in netvsc_run_xdp() 61 act = bpf_prog_run_xdp(prog, xdp); in netvsc_run_xdp() 73 if (!xdp_do_redirect(ndev, xdp, prog)) { in netvsc_run_xdp() 107 xdp->data_hard_start = NULL; in netvsc_run_xdp() 167 struct netdev_bpf xdp; in netvsc_vf_setxdp() local 24 netvsc_run_xdp(struct net_device *ndev, struct netvsc_channel *nvchan, struct xdp_buff *xdp) netvsc_run_xdp() argument [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/broadcom/bnxt/ |
H A D | bnxt_xdp.c | 118 struct xdp_buff xdp; in bnxt_rx_xdp() local 136 xdp.data_hard_start = *data_ptr - offset; in bnxt_rx_xdp() 137 xdp.data = *data_ptr; in bnxt_rx_xdp() 138 xdp_set_data_meta_invalid(&xdp); in bnxt_rx_xdp() 139 xdp.data_end = *data_ptr + *len; in bnxt_rx_xdp() 140 xdp.rxq = &rxr->xdp_rxq; in bnxt_rx_xdp() 141 xdp.frame_sz = PAGE_SIZE; /* BNXT_RX_PAGE_MODE(bp) when XDP enabled */ in bnxt_rx_xdp() 142 orig_data = xdp.data; in bnxt_rx_xdp() 145 act = bpf_prog_run_xdp(xdp_prog, &xdp); in bnxt_rx_xdp() 155 *len = xdp in bnxt_rx_xdp() 236 struct xdp_frame *xdp = frames[i]; bnxt_xdp_xmit() local 324 bnxt_xdp(struct net_device *dev, struct netdev_bpf *xdp) bnxt_xdp() argument [all...] |
/kernel/linux/linux-5.10/tools/testing/selftests/bpf/progs/ |
H A D | test_xdp_bpf2bpf.c | 45 int BPF_PROG(trace_on_entry, struct xdp_buff *xdp) in BPF_PROG() argument 48 void *data_end = (void *)(long)xdp->data_end; in BPF_PROG() 49 void *data = (void *)(long)xdp->data; in BPF_PROG() 51 meta.ifindex = xdp->rxq->dev->ifindex; in BPF_PROG() 53 bpf_xdp_output(xdp, &perf_buf_map, in BPF_PROG() 58 test_result_fentry = xdp->rxq->dev->ifindex; in BPF_PROG() 64 int BPF_PROG(trace_on_exit, struct xdp_buff *xdp, int ret) in BPF_PROG() argument
|
H A D | test_xdp.c | 80 static __always_inline int handle_ipv4(struct xdp_md *xdp) in handle_ipv4() argument 82 void *data_end = (void *)(long)xdp->data_end; in handle_ipv4() 83 void *data = (void *)(long)xdp->data; in handle_ipv4() 113 if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct iphdr))) in handle_ipv4() 116 data = (void *)(long)xdp->data; in handle_ipv4() 117 data_end = (void *)(long)xdp->data_end; in handle_ipv4() 153 static __always_inline int handle_ipv6(struct xdp_md *xdp) in handle_ipv6() argument 155 void *data_end = (void *)(long)xdp->data_end; in handle_ipv6() 156 void *data = (void *)(long)xdp->data; in handle_ipv6() 183 if (bpf_xdp_adjust_head(xdp, in handle_ipv6() 214 _xdp_tx_iptunnel(struct xdp_md *xdp) _xdp_tx_iptunnel() argument [all...] |
H A D | test_xdp_loop.c | 76 static __always_inline int handle_ipv4(struct xdp_md *xdp) in handle_ipv4() argument 78 void *data_end = (void *)(long)xdp->data_end; in handle_ipv4() 79 void *data = (void *)(long)xdp->data; in handle_ipv4() 109 if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct iphdr))) in handle_ipv4() 112 data = (void *)(long)xdp->data; in handle_ipv4() 113 data_end = (void *)(long)xdp->data_end; in handle_ipv4() 149 static __always_inline int handle_ipv6(struct xdp_md *xdp) in handle_ipv6() argument 151 void *data_end = (void *)(long)xdp->data_end; in handle_ipv6() 152 void *data = (void *)(long)xdp->data; in handle_ipv6() 179 if (bpf_xdp_adjust_head(xdp, in handle_ipv6() 210 _xdp_tx_iptunnel(struct xdp_md *xdp) _xdp_tx_iptunnel() argument [all...] |
/kernel/linux/linux-6.6/include/trace/events/ |
H A D | xdp.h | 3 #define TRACE_SYSTEM xdp 12 #include <net/xdp.h> 32 const struct bpf_prog *xdp, u32 act), 34 TP_ARGS(dev, xdp, act), 43 __entry->prog_id = xdp->aux->id; 93 const struct bpf_prog *xdp, 98 TP_ARGS(dev, xdp, tgt, err, map_type, map_id, index), 124 __entry->prog_id = xdp->aux->id; 143 const struct bpf_prog *xdp, 147 TP_ARGS(dev, xdp, tg [all...] |