Home
last modified time | relevance | path

Searched refs:xdp (Results 1 – 25 of 205) sorted by relevance

123456789

/linux/include/net/
H A Dxdp.h120 xdp->rxq = rxq; in xdp_init_buff()
121 xdp->flags = 0; in xdp_init_buff()
131 xdp->data = data; in xdp_prepare_buff()
143 ((xdp)->data_hard_start + (xdp)->frame_sz - \
154 unsigned int len = xdp->data_end - xdp->data; in xdp_get_buff_len()
269 headroom = xdp->data - xdp->data_hard_start; in xdp_update_frame_from_buff()
270 metasize = xdp->data - xdp->data_meta; in xdp_update_frame_from_buff()
276 if (unlikely(xdp->data_end > xdp_data_hard_end(xdp))) { in xdp_update_frame_from_buff()
282 xdp_frame->len = xdp->data_end - xdp->data; in xdp_update_frame_from_buff()
361 xdp->data_meta = xdp->data + 1; in xdp_set_data_meta_invalid()
[all …]
H A Dxdp_sock_drv.h87 struct xdp_buff_xsk *xskb = container_of(xdp, struct xdp_buff_xsk, xdp); in xsk_buff_xdp_get_dma()
94 struct xdp_buff_xsk *xskb = container_of(xdp, struct xdp_buff_xsk, xdp); in xsk_buff_xdp_get_frame_dma()
122 struct xdp_buff_xsk *xskb = container_of(xdp, struct xdp_buff_xsk, xdp); in xsk_buff_free()
141 struct xdp_buff_xsk *frag = container_of(xdp, struct xdp_buff_xsk, xdp); in xsk_buff_add_frag()
156 ret = &frag->xdp; in xsk_buff_get_frag()
176 return &frag->xdp; in xsk_buff_get_tail()
181 xdp->data = xdp->data_hard_start + XDP_PACKET_HEADROOM; in xsk_buff_set_size()
182 xdp->data_meta = xdp->data; in xsk_buff_set_size()
183 xdp->data_end = xdp->data + size; in xsk_buff_set_size()
184 xdp->flags = 0; in xsk_buff_set_size()
[all …]
/linux/Documentation/bpf/
H A Dredirect.rst25 :doc: xdp redirect
49 @cnt[tracepoint:xdp:mem_connect]: 18
50 @cnt[tracepoint:xdp:mem_disconnect]: 18
51 @cnt[tracepoint:xdp:xdp_exception]: 19605
53 @cnt[tracepoint:xdp:xdp_redirect]: 22292200
56 The various xdp tracepoints can be found in ``source/include/trace/events/xdp.h``
73 perf record -a -e xdp:xdp_redirect_err \
74 -e xdp:xdp_redirect_map_err \
75 -e xdp:xdp_exception \
76 -e xdp:xdp_devmap_xmit
[all …]
/linux/tools/testing/selftests/bpf/progs/
H A Dxdp_features.c68 void *data = (void *)(long)xdp->data; in xdp_process_echo_packet()
139 if (xdp_process_echo_packet(xdp, tx)) in xdp_update_stats()
158 xdp_update_stats(xdp, true, false); in xdp_tester_check_tx()
166 xdp_update_stats(xdp, false, false); in xdp_tester_check_rx()
174 int xdp_do_pass(struct xdp_md *xdp) in xdp_do_pass() argument
176 xdp_update_stats(xdp, true, true); in xdp_do_pass()
182 int xdp_do_drop(struct xdp_md *xdp) in xdp_do_drop() argument
191 int xdp_do_aborted(struct xdp_md *xdp) in xdp_do_aborted() argument
200 int xdp_do_tx(struct xdp_md *xdp) in xdp_do_tx() argument
202 void *data = (void *)(long)xdp->data; in xdp_do_tx()
[all …]
H A Dxsk_xdp_progs.c19 SEC("xdp.frags") int xsk_def_prog(struct xdp_md *xdp) in xsk_def_prog() argument
24 SEC("xdp.frags") int xsk_xdp_drop(struct xdp_md *xdp) in xsk_xdp_drop() argument
33 SEC("xdp.frags") int xsk_xdp_populate_metadata(struct xdp_md *xdp) in xsk_xdp_populate_metadata() argument
40 err = bpf_xdp_adjust_meta(xdp, -(int)sizeof(struct xdp_info)); in xsk_xdp_populate_metadata()
44 data = (void *)(long)xdp->data; in xsk_xdp_populate_metadata()
45 data_meta = (void *)(long)xdp->data_meta; in xsk_xdp_populate_metadata()
56 SEC("xdp") int xsk_xdp_shared_umem(struct xdp_md *xdp) in xsk_xdp_shared_umem() argument
58 void *data = (void *)(long)xdp->data; in xsk_xdp_shared_umem()
59 void *data_end = (void *)(long)xdp->data_end; in xsk_xdp_shared_umem()
H A Dtest_xdp_loop.c77 void *data_end = (void *)(long)xdp->data_end; in handle_ipv4()
78 void *data = (void *)(long)xdp->data; in handle_ipv4()
111 data = (void *)(long)xdp->data; in handle_ipv4()
112 data_end = (void *)(long)xdp->data_end; in handle_ipv4()
151 void *data = (void *)(long)xdp->data; in handle_ipv6()
181 data = (void *)(long)xdp->data; in handle_ipv6()
182 data_end = (void *)(long)xdp->data_end; in handle_ipv6()
209 int _xdp_tx_iptunnel(struct xdp_md *xdp) in _xdp_tx_iptunnel() argument
212 void *data = (void *)(long)xdp->data; in _xdp_tx_iptunnel()
222 return handle_ipv4(xdp); in _xdp_tx_iptunnel()
[all …]
H A Dtest_xdp.c81 void *data_end = (void *)(long)xdp->data_end; in handle_ipv4()
82 void *data = (void *)(long)xdp->data; in handle_ipv4()
115 data = (void *)(long)xdp->data; in handle_ipv4()
116 data_end = (void *)(long)xdp->data_end; in handle_ipv4()
155 void *data = (void *)(long)xdp->data; in handle_ipv6()
185 data = (void *)(long)xdp->data; in handle_ipv6()
186 data_end = (void *)(long)xdp->data_end; in handle_ipv6()
213 int _xdp_tx_iptunnel(struct xdp_md *xdp) in _xdp_tx_iptunnel() argument
216 void *data = (void *)(long)xdp->data; in _xdp_tx_iptunnel()
226 return handle_ipv4(xdp); in _xdp_tx_iptunnel()
[all …]
H A Dtest_xdp_do_redirect.c29 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 != (__u32)ifindex_in) in xdp_redirect()
55 if (bpf_xdp_adjust_meta(xdp, sizeof(__u64))) in xdp_redirect()
86 int xdp_count_pkts(struct xdp_md *xdp) in xdp_count_pkts() argument
88 void *data = (void *)(long)xdp->data; in xdp_count_pkts()
89 void *data_end = (void *)(long)xdp->data_end; in xdp_count_pkts()
H A Dtest_xdp_bpf2bpf.c45 int BPF_PROG(trace_on_entry, struct xdp_buff *xdp) in BPF_PROG() argument
49 meta.ifindex = xdp->rxq->dev->ifindex; in BPF_PROG()
50 meta.pkt_len = bpf_xdp_get_buff_len((struct xdp_md *)xdp); in BPF_PROG()
51 bpf_xdp_output(xdp, &perf_buf_map, in BPF_PROG()
56 test_result_fentry = xdp->rxq->dev->ifindex; in BPF_PROG()
62 int BPF_PROG(trace_on_exit, struct xdp_buff *xdp, int ret) in BPF_PROG() argument
H A Dtest_xdp_adjust_tail_shrink.c13 int _xdp_adjust_tail_shrink(struct xdp_md *xdp) in _xdp_adjust_tail_shrink() argument
15 __u8 *data_end = (void *)(long)xdp->data_end; in _xdp_adjust_tail_shrink()
16 __u8 *data = (void *)(long)xdp->data; in _xdp_adjust_tail_shrink()
19 switch (bpf_xdp_get_buff_len(xdp)) { in _xdp_adjust_tail_shrink()
47 if (bpf_xdp_adjust_tail(xdp, 0 - offset)) in _xdp_adjust_tail_shrink()
H A Dtest_parse_tcp_hdr_opt.c36 static int parse_hdr_opt(const struct xdp_md *xdp, struct hdr_opt_state *state) in parse_hdr_opt() argument
38 const void *data = (void *)(long)xdp->data; in parse_hdr_opt()
39 const void *data_end = (void *)(long)xdp->data_end; in parse_hdr_opt()
82 int xdp_ingress_v6(struct xdp_md *xdp) in xdp_ingress_v6() argument
84 const void *data = (void *)(long)xdp->data; in xdp_ingress_v6()
85 const void *data_end = (void *)(long)xdp->data_end; in xdp_ingress_v6()
106 err = parse_hdr_opt(xdp, &opt_state); in xdp_ingress_v6()
/linux/drivers/net/ethernet/broadcom/bnxt/
H A Dbnxt_xdp.c28 struct xdp_buff *xdp) in bnxt_xmit_bd() argument
38 if (xdp && xdp_buff_has_frags(xdp)) { in bnxt_xmit_bd()
47 if (xdp) in bnxt_xmit_bd()
184 struct xdp_buff *xdp) in bnxt_xdp_buff_init() argument
209 if (!xdp || !xdp_buff_has_frags(xdp)) in bnxt_xdp_buff_frags_free()
247 orig_data = xdp->data; in bnxt_rx_xdp()
258 *len = xdp->data_end - xdp->data; in bnxt_rx_xdp()
260 offset = xdp->data - xdp->data_hard_start; in bnxt_rx_xdp()
363 mapping = dma_map_single(&pdev->dev, xdp->data, xdp->len, in bnxt_xdp_xmit()
369 __bnxt_xmit_xdp_redirect(bp, txr, mapping, xdp->len, xdp); in bnxt_xdp_xmit()
[all …]
H A Dbnxt_xdp.h18 struct xdp_buff *xdp);
21 struct xdp_buff *xdp, struct page *page, u8 **data_ptr,
23 int bnxt_xdp(struct net_device *dev, struct netdev_bpf *xdp);
31 struct xdp_buff *xdp);
33 struct xdp_buff *xdp);
36 struct xdp_buff *xdp,
/linux/drivers/net/ethernet/intel/ixgbe/
H A Dixgbe_xsk.c169 if (!bi->xdp) { in ixgbe_alloc_rx_buffers_zc()
216 unsigned int totalsize = xdp->data_end - xdp->data_meta; in ixgbe_construct_skb_zc()
217 unsigned int metasize = xdp->data - xdp->data_meta; in ixgbe_construct_skb_zc()
289 bi->xdp = NULL; in ixgbe_clean_rx_irq_zc()
299 bi->xdp = NULL; in ixgbe_clean_rx_irq_zc()
305 bi->xdp->data_end = bi->xdp->data + size; in ixgbe_clean_rx_irq_zc()
320 bi->xdp = NULL; in ixgbe_clean_rx_irq_zc()
336 xsk_buff_free(bi->xdp); in ixgbe_clean_rx_irq_zc()
337 bi->xdp = NULL; in ixgbe_clean_rx_irq_zc()
383 if (!bi->xdp) in ixgbe_xsk_clean_rx_ring()
[all …]
/linux/samples/bpf/
H A Dxdp_adjust_tail_kern.c74 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()
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
139 void *data_end = (void *)(long)xdp->data_end; in _xdp_icmp()
140 void *data = (void *)(long)xdp->data; in _xdp_icmp()
[all …]
H A Dxdp_tx_iptunnel_kern.c79 void *data_end = (void *)(long)xdp->data_end; in handle_ipv4()
80 void *data = (void *)(long)xdp->data; in handle_ipv4()
115 data = (void *)(long)xdp->data; in handle_ipv4()
116 data_end = (void *)(long)xdp->data_end; in handle_ipv4()
155 void *data = (void *)(long)xdp->data; in handle_ipv6()
187 data = (void *)(long)xdp->data; in handle_ipv6()
188 data_end = (void *)(long)xdp->data_end; in handle_ipv6()
216 int _xdp_tx_iptunnel(struct xdp_md *xdp) in _xdp_tx_iptunnel() argument
219 void *data = (void *)(long)xdp->data; in _xdp_tx_iptunnel()
229 return handle_ipv4(xdp); in _xdp_tx_iptunnel()
[all …]
/linux/drivers/net/ethernet/microchip/lan966x/
H A Dlan966x_xdp.c9 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()
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_address(page), in lan966x_xdp_run()
87 act = bpf_prog_run_xdp(xdp_prog, &xdp); in lan966x_xdp_run()
[all …]
/linux/drivers/net/ethernet/intel/ice/
H A Dice_xsk.c456 xdp++; in ice_fill_rx_descs()
481 struct xdp_buff **xdp; in __ice_alloc_rx_bufs_zc() local
551 unsigned int totalsize = xdp->data_end - xdp->data_meta; in ice_construct_skb_zc()
552 unsigned int metasize = xdp->data - xdp->data_meta; in ice_construct_skb_zc()
598 xsk_buff_free(xdp); in ice_construct_skb_zc()
682 u32 size = xdp->data_end - xdp->data; in ice_xmit_xdp_tx_zc()
707 head = xdp; in ice_xmit_xdp_tx_zc()
715 tx_buf->xdp = xdp; in ice_xmit_xdp_tx_zc()
868 struct xdp_buff *xdp; in ice_clean_rx_irq_zc() local
897 first = xdp; in ice_clean_rx_irq_zc()
[all …]
/linux/drivers/net/vmxnet3/
H A Dvmxnet3_xdp.c260 act = bpf_prog_run_xdp(prog, xdp); in vmxnet3_run_xdp()
261 page = virt_to_page(xdp->data_hard_start); in vmxnet3_run_xdp()
276 xdpf = xdp_convert_buff_to_frame(xdp); in vmxnet3_run_xdp()
304 const struct xdp_buff *xdp) in vmxnet3_build_skb() argument
316 skb_reserve(skb, xdp->data - xdp->data_hard_start); in vmxnet3_build_skb()
317 skb_put(skb, xdp->data_end - xdp->data); in vmxnet3_build_skb()
331 struct xdp_buff xdp; in vmxnet3_process_xdp_small() local
344 xdp_buff_clear_frags_flag(&xdp); in vmxnet3_process_xdp_small()
347 memcpy(xdp.data, data, len); in vmxnet3_process_xdp_small()
377 struct xdp_buff xdp; in vmxnet3_process_xdp() local
[all …]
/linux/drivers/net/ethernet/netronome/nfp/
H A Dnfp_net_xsk.c18 struct xdp_buff *xdp) in nfp_net_xsk_rx_bufs_stash() argument
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 = xsk_buff_alloc(pool); in nfp_net_xsk_rx_ring_fill_freelist()
68 if (!xdp) in nfp_net_xsk_rx_ring_fill_freelist()
71 nfp_net_xsk_rx_bufs_stash(rx_ring, wr_idx, xdp); in nfp_net_xsk_rx_ring_fill_freelist()
/linux/drivers/net/ethernet/netronome/nfp/nfd3/
H A Dxsk.c35 txbuf->xdp = xrxbuf->xdp; in nfp_nfd3_xsk_tx_xdp()
105 xrxbuf->xdp->data - xrxbuf->xdp->data_meta); in nfp_nfd3_xsk_rx_skb()
184 xrxbuf->xdp->data += meta_len; in nfp_nfd3_xsk_rx()
185 xrxbuf->xdp->data_end = xrxbuf->xdp->data + pkt_len; in nfp_nfd3_xsk_rx()
188 net_prefetch(xrxbuf->xdp->data); in nfp_nfd3_xsk_rx()
192 xrxbuf->xdp->data - in nfp_nfd3_xsk_rx()
194 xrxbuf->xdp->data, in nfp_nfd3_xsk_rx()
221 pkt_len = xrxbuf->xdp->data_end - xrxbuf->xdp->data; in nfp_nfd3_xsk_rx()
222 pkt_off = xrxbuf->xdp->data - xrxbuf->xdp->data_hard_start; in nfp_nfd3_xsk_rx()
269 xsk_buff_free(txbuf->xdp); in nfp_nfd3_xsk_tx_free()
[all …]
/linux/include/trace/events/
H A Dxdp.h3 #define TRACE_SYSTEM xdp
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,
124 __entry->prog_id = xdp->aux->id;
143 const struct bpf_prog *xdp,
152 const struct bpf_prog *xdp,
159 #define _trace_xdp_redirect(dev, xdp, to) \ argument
174 const struct bpf_prog *xdp,
[all …]
/linux/drivers/net/hyperv/
H A Dnetvsc_bpf.c25 struct xdp_buff *xdp) in netvsc_run_xdp() argument
35 xdp->data_hard_start = NULL; 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
178 memset(&xdp, 0, sizeof(xdp)); in netvsc_vf_setxdp()
183 xdp.command = XDP_SETUP_PROG; in netvsc_vf_setxdp()
184 xdp.prog = prog; in netvsc_vf_setxdp()
[all …]
/linux/net/bpf/
H A Dtest_run.c171 .init_arg = xdp, in xdp_test_run_setup()
175 if (!xdp->frames) in xdp_test_run_setup()
179 if (!xdp->skbs) in xdp_test_run_setup()
193 xdp->pp = pp; in xdp_test_run_setup()
220 kfree(xdp->skbs); in xdp_test_run_teardown()
360 ret = xdp_recv_frames(frames, nframes, xdp->skbs, xdp->dev); in xdp_test_run_batch()
430 if (xdp) in bpf_test_run()
1180 xdp->data = xdp->data_meta + xdp_md->data; in xdp_convert_md_to_buff()
1193 xdp_md->data = xdp->data - xdp->data_meta; in xdp_convert_buff_to_md()
1194 xdp_md->data_end = xdp->data_end - xdp->data_meta; in xdp_convert_buff_to_md()
[all …]
/linux/tools/testing/selftests/bpf/
H A Dtest_tcp_check_syncookie_user.c21 static int get_map_fd_by_prog_id(int prog_id, bool *xdp) in get_map_fd_by_prog_id() argument
48 *xdp = info.type == BPF_PROG_TYPE_XDP; in get_map_fd_by_prog_id()
59 static int run_test(int server_fd, int results_fd, bool xdp) in run_test() argument
110 if (xdp && value_gen == 0) { in run_test()
164 bool xdp; in main() local
174 results = get_map_fd_by_prog_id(atoi(argv[1]), &xdp); in main()
194 if (run_test(server, results, xdp)) in main()
197 if (run_test(server_v6, results, xdp)) in main()
200 if (run_test(server_dual, results, xdp)) in main()

123456789