/Linux-v4.19/include/net/ |
D | xdp.h | 96 struct xdp_frame *convert_to_xdp_frame(struct xdp_buff *xdp) in convert_to_xdp_frame() argument 103 if (xdp->rxq->mem.type == MEM_TYPE_ZERO_COPY) in convert_to_xdp_frame() 107 headroom = xdp->data - xdp->data_hard_start; in convert_to_xdp_frame() 108 metasize = xdp->data - xdp->data_meta; in convert_to_xdp_frame() 114 xdp_frame = xdp->data_hard_start; in convert_to_xdp_frame() 116 xdp_frame->data = xdp->data; in convert_to_xdp_frame() 117 xdp_frame->len = xdp->data_end - xdp->data; in convert_to_xdp_frame() 122 xdp_frame->mem = xdp->rxq->mem; in convert_to_xdp_frame() 129 void xdp_return_buff(struct xdp_buff *xdp); 143 xdp_set_data_meta_invalid(struct xdp_buff *xdp) in xdp_set_data_meta_invalid() argument [all …]
|
D | xdp_sock.h | 72 int xsk_generic_rcv(struct xdp_sock *xs, struct xdp_buff *xdp); 73 int xsk_rcv(struct xdp_sock *xs, struct xdp_buff *xdp); 83 static inline int xsk_generic_rcv(struct xdp_sock *xs, struct xdp_buff *xdp) in xsk_generic_rcv() argument 88 static inline int xsk_rcv(struct xdp_sock *xs, struct xdp_buff *xdp) in xsk_rcv() argument
|
/Linux-v4.19/include/trace/events/ |
D | xdp.h | 3 #define TRACE_SYSTEM xdp 31 const struct bpf_prog *xdp, u32 act), 33 TP_ARGS(dev, xdp, act), 42 __entry->prog_id = xdp->aux->id; 56 const struct bpf_prog *xdp, 60 TP_ARGS(dev, xdp, to_ifindex, err, map, map_index), 73 __entry->prog_id = xdp->aux->id; 91 const struct bpf_prog *xdp, 94 TP_ARGS(dev, xdp, to_ifindex, err, map, map_index) 99 const struct bpf_prog *xdp, [all …]
|
/Linux-v4.19/samples/bpf/ |
D | xdp_adjust_tail_kern.c | 67 static __always_inline int send_icmp4_too_big(struct xdp_md *xdp) in send_icmp4_too_big() argument 71 if (bpf_xdp_adjust_head(xdp, 0 - headroom)) in send_icmp4_too_big() 73 void *data = (void *)(long)xdp->data; in send_icmp4_too_big() 74 void *data_end = (void *)(long)xdp->data_end; in send_icmp4_too_big() 117 static __always_inline int handle_ipv4(struct xdp_md *xdp) in handle_ipv4() argument 119 void *data_end = (void *)(long)xdp->data_end; in handle_ipv4() 120 void *data = (void *)(long)xdp->data; in handle_ipv4() 126 if (bpf_xdp_adjust_tail(xdp, 0 - offset)) in handle_ipv4() 128 return send_icmp4_too_big(xdp); in handle_ipv4() 134 int _xdp_icmp(struct xdp_md *xdp) in _xdp_icmp() argument [all …]
|
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, 0 - (int)sizeof(struct ipv6hdr))) in handle_ipv6() [all …]
|
D | xdp2skb_meta.sh | 156 call_ip link show dev $device | grep --color=auto xdp 173 call_ip link set dev $device xdp off 204 call_ip link set dev $device xdp obj $file sec $prog
|
/Linux-v4.19/drivers/net/ethernet/broadcom/bnxt/ |
D | bnxt_xdp.c | 80 struct xdp_buff xdp; in bnxt_rx_xdp() local 95 xdp.data_hard_start = *data_ptr - offset; in bnxt_rx_xdp() 96 xdp.data = *data_ptr; in bnxt_rx_xdp() 97 xdp_set_data_meta_invalid(&xdp); in bnxt_rx_xdp() 98 xdp.data_end = *data_ptr + *len; in bnxt_rx_xdp() 99 xdp.rxq = &rxr->xdp_rxq; in bnxt_rx_xdp() 100 orig_data = xdp.data; in bnxt_rx_xdp() 106 act = bpf_prog_run_xdp(xdp_prog, &xdp); in bnxt_rx_xdp() 116 *len = xdp.data_end - xdp.data; in bnxt_rx_xdp() 117 if (orig_data != xdp.data) { in bnxt_rx_xdp() [all …]
|
/Linux-v4.19/tools/testing/selftests/bpf/ |
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, 0 - (int)sizeof(struct ipv6hdr))) in handle_ipv6() [all …]
|
D | test_adjust_tail.c | 15 int _xdp_adjust_tail(struct xdp_md *xdp) in _xdp_adjust_tail() argument 17 void *data_end = (void *)(long)xdp->data_end; in _xdp_adjust_tail() 18 void *data = (void *)(long)xdp->data; in _xdp_adjust_tail() 25 if (bpf_xdp_adjust_tail(xdp, 0 - offset)) in _xdp_adjust_tail()
|
D | test_xdp_noinline.c | 289 bool encap_v6(struct xdp_md *xdp, struct ctl_value *cval, in encap_v6() argument 300 if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct ipv6hdr))) in encap_v6() 302 data = (void *)(long)xdp->data; in encap_v6() 303 data_end = (void *)(long)xdp->data_end; in encap_v6() 332 bool encap_v4(struct xdp_md *xdp, struct ctl_value *cval, in encap_v4() argument 348 if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct iphdr))) in encap_v4() 350 data = (void *)(long)xdp->data; in encap_v4() 351 data_end = (void *)(long)xdp->data_end; in encap_v4() 380 if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct iphdr))) in encap_v4() 386 bool decap_v6(struct xdp_md *xdp, void **data, void **data_end, bool inner_v4) in decap_v6() argument [all …]
|
D | test_xdp_redirect.c | 18 int xdp_redirect_to_111(struct xdp_md *xdp) in xdp_redirect_to_111() argument 23 int xdp_redirect_to_222(struct xdp_md *xdp) in xdp_redirect_to_222() argument
|
D | test_xdp_meta.sh | 17 ip link set dev lo xdp off 2>/dev/null > /dev/null 43 ip netns exec ns1 ip link set dev veth1 xdp obj test_xdp_meta.o sec x 44 ip netns exec ns2 ip link set dev veth2 xdp obj test_xdp_meta.o sec x
|
D | test_offload.py | 412 def ip_link_show(self, xdp): argument 418 fail(xdp != "xdp" in link, 420 ("xdp" in link, xdp)) 820 ipl = sim.ip_link_show(xdp=True) 834 ipl = sim.ip_link_show(xdp=True) 891 ipl = sim.ip_link_show(xdp=True) 936 xdp = sim.ip_link_show(xdp=True)["xdp"] variable 938 fail("prog" not in xdp, "Base program not reported in single program mode") 943 two_xdps = sim.ip_link_show(xdp=True)["xdp"] 948 fail(xdp["attached"][0] not in two_xdps["attached"], [all …]
|
/Linux-v4.19/net/bpf/ |
D | test_run.c | 175 struct xdp_buff xdp = {}; in bpf_prog_test_run_xdp() local 184 xdp.data_hard_start = data; in bpf_prog_test_run_xdp() 185 xdp.data = data + XDP_PACKET_HEADROOM + NET_IP_ALIGN; in bpf_prog_test_run_xdp() 186 xdp.data_meta = xdp.data; in bpf_prog_test_run_xdp() 187 xdp.data_end = xdp.data + size; in bpf_prog_test_run_xdp() 190 xdp.rxq = &rxqueue->xdp_rxq; in bpf_prog_test_run_xdp() 192 retval = bpf_test_run(prog, &xdp, repeat, &duration); in bpf_prog_test_run_xdp() 193 if (xdp.data != data + XDP_PACKET_HEADROOM + NET_IP_ALIGN || in bpf_prog_test_run_xdp() 194 xdp.data_end != xdp.data + size) in bpf_prog_test_run_xdp() 195 size = xdp.data_end - xdp.data; in bpf_prog_test_run_xdp() [all …]
|
/Linux-v4.19/drivers/net/ethernet/mellanox/mlx5/core/en/ |
D | xdp.c | 38 struct xdp_buff *xdp) in mlx5e_xmit_xdp_buff() argument 42 xdpi.xdpf = convert_to_xdp_frame(xdp); in mlx5e_xmit_xdp_buff() 58 struct xdp_buff xdp; in mlx5e_xdp_handle() local 65 xdp.data = va + *rx_headroom; in mlx5e_xdp_handle() 66 xdp_set_data_meta_invalid(&xdp); in mlx5e_xdp_handle() 67 xdp.data_end = xdp.data + *len; in mlx5e_xdp_handle() 68 xdp.data_hard_start = va; in mlx5e_xdp_handle() 69 xdp.rxq = &rq->xdp_rxq; in mlx5e_xdp_handle() 71 act = bpf_prog_run_xdp(prog, &xdp); in mlx5e_xdp_handle() 74 *rx_headroom = xdp.data - xdp.data_hard_start; in mlx5e_xdp_handle() [all …]
|
/Linux-v4.19/drivers/net/ |
D | veth.c | 172 struct veth_rq *rq, bool xdp) in veth_forward_skb() argument 174 return __dev_forward_skb(dev, skb) ?: xdp ? in veth_forward_skb() 365 static int veth_xdp_tx(struct net_device *dev, struct xdp_buff *xdp) in veth_xdp_tx() argument 367 struct xdp_frame *frame = convert_to_xdp_frame(xdp); in veth_xdp_tx() 390 struct xdp_buff xdp; in veth_xdp_rcv_one() local 393 xdp.data_hard_start = hard_start; in veth_xdp_rcv_one() 394 xdp.data = frame->data; in veth_xdp_rcv_one() 395 xdp.data_end = frame->data + frame->len; in veth_xdp_rcv_one() 396 xdp.data_meta = frame->data - frame->metasize; in veth_xdp_rcv_one() 397 xdp.rxq = &rq->xdp_rxq; in veth_xdp_rcv_one() [all …]
|
D | virtio_net.c | 634 struct xdp_buff xdp; in receive_small() local 662 xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len; in receive_small() 663 xdp.data = xdp.data_hard_start + xdp_headroom; in receive_small() 664 xdp_set_data_meta_invalid(&xdp); in receive_small() 665 xdp.data_end = xdp.data + len; in receive_small() 666 xdp.rxq = &rq->xdp_rxq; in receive_small() 667 orig_data = xdp.data; in receive_small() 668 act = bpf_prog_run_xdp(xdp_prog, &xdp); in receive_small() 674 delta = orig_data - xdp.data; in receive_small() 675 len = xdp.data_end - xdp.data; in receive_small() [all …]
|
/Linux-v4.19/net/xdp/ |
D | xsk.c | 56 static int __xsk_rcv(struct xdp_sock *xs, struct xdp_buff *xdp, u32 len) in __xsk_rcv() argument 71 memcpy(buffer, xdp->data, len); in __xsk_rcv() 75 xdp_return_buff(xdp); in __xsk_rcv() 83 static int __xsk_rcv_zc(struct xdp_sock *xs, struct xdp_buff *xdp, u32 len) in __xsk_rcv_zc() argument 85 int err = xskq_produce_batch_desc(xs->rx, (u64)xdp->handle, len); in __xsk_rcv_zc() 93 int xsk_rcv(struct xdp_sock *xs, struct xdp_buff *xdp) in xsk_rcv() argument 97 if (xs->dev != xdp->rxq->dev || xs->queue_id != xdp->rxq->queue_index) in xsk_rcv() 100 len = xdp->data_end - xdp->data; in xsk_rcv() 102 return (xdp->rxq->mem.type == MEM_TYPE_ZERO_COPY) ? in xsk_rcv() 103 __xsk_rcv_zc(xs, xdp, len) : __xsk_rcv(xs, xdp, len); in xsk_rcv() [all …]
|
/Linux-v4.19/drivers/net/ethernet/intel/i40e/ |
D | i40e_txrx.c | 2019 struct xdp_buff *xdp) in i40e_construct_skb() argument 2021 unsigned int size = xdp->data_end - xdp->data; in i40e_construct_skb() 2031 prefetch(xdp->data); in i40e_construct_skb() 2033 prefetch(xdp->data + L1_CACHE_BYTES); in i40e_construct_skb() 2061 headlen = eth_get_headlen(xdp->data, I40E_RX_HDR_SIZE); in i40e_construct_skb() 2064 memcpy(__skb_put(skb, headlen), xdp->data, in i40e_construct_skb() 2099 struct xdp_buff *xdp) in i40e_build_skb() argument 2101 unsigned int metasize = xdp->data - xdp->data_meta; in i40e_build_skb() 2106 SKB_DATA_ALIGN(xdp->data_end - in i40e_build_skb() 2107 xdp->data_hard_start); in i40e_build_skb() [all …]
|
/Linux-v4.19/drivers/net/ethernet/intel/ixgbevf/ |
D | ixgbevf_main.c | 851 struct xdp_buff *xdp, in ixgbevf_construct_skb() argument 854 unsigned int size = xdp->data_end - xdp->data; in ixgbevf_construct_skb() 858 unsigned int truesize = SKB_DATA_ALIGN(xdp->data_end - in ixgbevf_construct_skb() 859 xdp->data_hard_start); in ixgbevf_construct_skb() 865 prefetch(xdp->data); in ixgbevf_construct_skb() 867 prefetch(xdp->data + L1_CACHE_BYTES); in ixgbevf_construct_skb() 892 headlen = eth_get_headlen(xdp->data, IXGBEVF_RX_HDR_SIZE); in ixgbevf_construct_skb() 895 memcpy(__skb_put(skb, headlen), xdp->data, in ixgbevf_construct_skb() 902 (xdp->data + headlen) - in ixgbevf_construct_skb() 927 struct xdp_buff *xdp, in ixgbevf_build_skb() argument [all …]
|
/Linux-v4.19/drivers/net/ethernet/netronome/nfp/ |
D | nfp_net_debugfs.c | 206 struct dentry *queues, *tx, *rx, *xdp; in nfp_net_debugfs_vnic_add() local 228 xdp = debugfs_create_dir("xdp", queues); in nfp_net_debugfs_vnic_add() 229 if (IS_ERR_OR_NULL(rx) || IS_ERR_OR_NULL(tx) || IS_ERR_OR_NULL(xdp)) in nfp_net_debugfs_vnic_add() 236 debugfs_create_file(name, 0400, xdp, in nfp_net_debugfs_vnic_add()
|
/Linux-v4.19/drivers/net/ethernet/qlogic/qede/ |
D | qede_fp.c | 365 txq->sw_tx_ring.xdp[idx].page = metadata->data; in qede_xdp_xmit() 366 txq->sw_tx_ring.xdp[idx].mapping = metadata->mapping; in qede_xdp_xmit() 400 txq->sw_tx_ring.xdp[idx].mapping, in qede_xdp_tx_int() 402 __free_page(txq->sw_tx_ring.xdp[idx].page); in qede_xdp_tx_int() 1070 struct xdp_buff xdp; in qede_rx_xdp() local 1073 xdp.data_hard_start = page_address(bd->data); in qede_rx_xdp() 1074 xdp.data = xdp.data_hard_start + *data_offset; in qede_rx_xdp() 1075 xdp_set_data_meta_invalid(&xdp); in qede_rx_xdp() 1076 xdp.data_end = xdp.data + *len; in qede_rx_xdp() 1077 xdp.rxq = &rxq->xdp_rxq; in qede_rx_xdp() [all …]
|
/Linux-v4.19/drivers/net/ethernet/mellanox/mlx4/ |
D | en_rx.c | 663 struct xdp_buff xdp; in mlx4_en_process_rx_cq() local 675 xdp.rxq = &ring->xdp_rxq; in mlx4_en_process_rx_cq() 769 xdp.data_hard_start = va - frags[0].page_offset; in mlx4_en_process_rx_cq() 770 xdp.data = va; in mlx4_en_process_rx_cq() 771 xdp_set_data_meta_invalid(&xdp); in mlx4_en_process_rx_cq() 772 xdp.data_end = xdp.data + length; in mlx4_en_process_rx_cq() 773 orig_data = xdp.data; in mlx4_en_process_rx_cq() 775 act = bpf_prog_run_xdp(xdp_prog, &xdp); in mlx4_en_process_rx_cq() 777 length = xdp.data_end - xdp.data; in mlx4_en_process_rx_cq() 778 if (xdp.data != orig_data) { in mlx4_en_process_rx_cq() [all …]
|
/Linux-v4.19/net/core/ |
D | xdp.c | 365 void xdp_return_buff(struct xdp_buff *xdp) in xdp_return_buff() argument 367 __xdp_return(xdp->data, &xdp->rxq->mem, true, xdp->handle); in xdp_return_buff()
|
/Linux-v4.19/tools/bpf/bpftool/Documentation/ |
D | bpftool-prog.rst | 34 | **tracepoint** | **raw_tracepoint** | **xdp** | **perf_event** | **cgroup/skb** | 119 10: xdp name some_prog tag 005a3d2123620c8b gpl 130 "type": "xdp", 184 | **# bpftool prog load xdp1_kern.o /sys/fs/bpf/xdp1 type xdp map name rxcnt id 7** 186 | 9: xdp name xdp_prog1 tag 539ec6ce11b52f98 gpl
|