/linux-master/include/linux/ |
H A D | bpf_trace.h | 5 #include <trace/events/xdp.h>
|
H A D | if_tun.h | 36 static inline void *tun_xdp_to_ptr(struct xdp_frame *xdp) argument 38 return (void *)((unsigned long)xdp | TUN_XDP_FLAG); 68 static inline void *tun_xdp_to_ptr(struct xdp_frame *xdp) argument
|
/linux-master/tools/testing/selftests/bpf/progs/ |
H A D | test_xdp_context_test_run.c | 5 SEC("xdp") 6 int xdp_context(struct xdp_md *xdp) argument 8 void *data = (void *)(long)xdp->data; 9 __u32 *metadata = (void *)(long)xdp->data_meta; 15 if (bpf_xdp_adjust_meta(xdp, 4))
|
H A D | test_xdp_adjust_tail_shrink.c | 12 SEC("xdp") 13 int _xdp_adjust_tail_shrink(struct xdp_md *xdp) argument 15 __u8 *data_end = (void *)(long)xdp->data_end; 16 __u8 *data = (void *)(long)xdp->data; 19 switch (bpf_xdp_get_buff_len(xdp)) { 47 if (bpf_xdp_adjust_tail(xdp, 0 - offset))
|
H A D | test_xdp_redirect.c | 16 int xdp_redirect_to_111(struct xdp_md *xdp) argument 21 int xdp_redirect_to_222(struct xdp_md *xdp) argument
|
H A D | xdp_redirect_map.c | 14 int xdp_redirect_map_0(struct xdp_md *xdp) argument 20 int xdp_redirect_map_1(struct xdp_md *xdp) argument 26 int xdp_redirect_map_2(struct xdp_md *xdp) argument
|
H A D | test_xdp_adjust_tail_grow.c | 5 SEC("xdp") 6 int _xdp_adjust_tail_grow(struct xdp_md *xdp) argument 8 int data_len = bpf_xdp_get_buff_len(xdp); 36 if (bpf_xdp_adjust_tail(xdp, offset))
|
H A D | xdp_tx.c | 6 SEC("xdp") 7 int xdp_tx(struct xdp_md *xdp) argument
|
H A D | xsk_xdp_progs.c | 19 SEC("xdp.frags") int xsk_def_prog(struct xdp_md *xdp) argument 24 SEC("xdp.frags") int xsk_xdp_drop(struct xdp_md *xdp) argument 33 SEC("xdp.frags") int xsk_xdp_populate_metadata(struct xdp_md *xdp) argument 40 err = bpf_xdp_adjust_meta(xdp, -(int)sizeof(struct xdp_info)); 44 data = (void *)(long)xdp->data; 45 data_meta = (void *)(long)xdp->data_meta; 56 SEC("xdp") in argument [all...] |
H A D | test_xdp_update_frags.c | 13 SEC("xdp.frags") 14 int xdp_adjust_frags(struct xdp_md *xdp) argument 16 __u8 *data_end = (void *)(long)xdp->data_end; 17 __u8 *data = (void *)(long)xdp->data; 26 err = bpf_xdp_load_bytes(xdp, offset, val, sizeof(val)); 35 err = bpf_xdp_store_bytes(xdp, offset, val, sizeof(val));
|
H A D | test_xdp_do_redirect.c | 28 SEC("xdp") 29 int xdp_redirect(struct xdp_md *xdp) argument 31 __u32 *metadata = (void *)(long)xdp->data_meta; 32 void *data_end = (void *)(long)xdp->data_end; 33 void *data = (void *)(long)xdp->data; 41 if (xdp->ingress_ifindex != (__u32)ifindex_in) 55 if (bpf_xdp_adjust_meta(xdp, sizeof(__u64))) 85 SEC("xdp") 86 int xdp_count_pkts(struct xdp_md *xdp) argument 88 void *data = (void *)(long)xdp [all...] |
H A D | test_xdp_link.c | 8 SEC("xdp") 9 int xdp_handler(struct xdp_md *xdp) argument
|
H A D | xdp_features.c | 65 xdp_process_echo_packet(struct xdp_md *xdp, bool dut) argument 67 void *data_end = (void *)(long)xdp->data_end; 68 void *data = (void *)(long)xdp->data; 135 xdp_update_stats(struct xdp_md *xdp, bool tx, bool dut) argument 139 if (xdp_process_echo_packet(xdp, tx)) 155 SEC("xdp") 156 int xdp_tester_check_tx(struct xdp_md *xdp) argument 158 xdp_update_stats(xdp, true, false); 163 SEC("xdp") 164 int xdp_tester_check_rx(struct xdp_md *xdp) argument 174 xdp_do_pass(struct xdp_md *xdp) argument 182 xdp_do_drop(struct xdp_md *xdp) argument 191 xdp_do_aborted(struct xdp_md *xdp) argument 200 xdp_do_tx(struct xdp_md *xdp) argument 217 xdp_do_redirect(struct xdp_md *xdp) argument 226 BPF_PROG(xdp_exception, const struct net_device *dev, const struct bpf_prog *xdp, __u32 act) argument 252 xdp_do_redirect_cpumap(struct xdp_md *xdp) argument [all...] |
H A D | test_xdp_bpf2bpf.c | 45 int BPF_PROG(trace_on_entry, struct xdp_buff *xdp) argument 49 meta.ifindex = xdp->rxq->dev->ifindex; 50 meta.pkt_len = bpf_xdp_get_buff_len((struct xdp_md *)xdp); 51 bpf_xdp_output(xdp, &perf_buf_map, 56 test_result_fentry = xdp->rxq->dev->ifindex; 62 int BPF_PROG(trace_on_exit, struct xdp_buff *xdp, int ret) argument
|
H A D | test_parse_tcp_hdr_opt.c | 36 static int parse_hdr_opt(const struct xdp_md *xdp, struct hdr_opt_state *state) argument 38 const void *data = (void *)(long)xdp->data; 39 const void *data_end = (void *)(long)xdp->data_end; 81 SEC("xdp") 82 int xdp_ingress_v6(struct xdp_md *xdp) argument 84 const void *data = (void *)(long)xdp->data; 85 const void *data_end = (void *)(long)xdp->data_end; 106 err = parse_hdr_opt(xdp, &opt_state);
|
H A D | test_xdp.c | 79 static __always_inline int handle_ipv4(struct xdp_md *xdp) argument 81 void *data_end = (void *)(long)xdp->data_end; 82 void *data = (void *)(long)xdp->data; 112 if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct iphdr))) 115 data = (void *)(long)xdp->data; 116 data_end = (void *)(long)xdp->data_end; 152 static __always_inline int handle_ipv6(struct xdp_md *xdp) argument 154 void *data_end = (void *)(long)xdp->data_end; 155 void *data = (void *)(long)xdp->data; 182 if (bpf_xdp_adjust_head(xdp, 213 _xdp_tx_iptunnel(struct xdp_md *xdp) argument [all...] |
/linux-master/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) argument 93 return !!(xdp->flags & XDP_FLAGS_HAS_FRAGS); 96 static __always_inline void xdp_buff_set_frags_flag(struct xdp_buff *xdp) argument 98 xdp->flags |= XDP_FLAGS_HAS_FRAGS; 101 static __always_inline void xdp_buff_clear_frags_flag(struct xdp_buff *xdp) argument 103 xdp->flags &= ~XDP_FLAGS_HAS_FRAGS; 106 static __always_inline bool xdp_buff_is_frag_pfmemalloc(struct xdp_buff *xdp) argument 111 xdp_buff_set_frag_pfmemalloc(struct xdp_buff *xdp) argument 117 xdp_init_buff(struct xdp_buff *xdp, u32 frame_sz, struct xdp_rxq_info *rxq) argument 125 xdp_prepare_buff(struct xdp_buff *xdp, unsigned char *hard_start, int headroom, int data_len, const bool meta_valid) argument 147 xdp_get_shared_info_from_buff(struct xdp_buff *xdp) argument 152 xdp_get_buff_len(struct xdp_buff *xdp) argument 252 xdp_convert_frame_to_buff(struct xdp_frame *frame, struct xdp_buff *xdp) argument 263 xdp_update_frame_from_buff(struct xdp_buff *xdp, struct xdp_frame *xdp_frame) argument 293 xdp_convert_buff_to_frame(struct xdp_buff *xdp) argument 359 xdp_set_data_meta_invalid(struct xdp_buff *xdp) argument 365 xdp_data_meta_unsupported(const struct xdp_buff *xdp) argument 507 bpf_prog_run_xdp(const struct bpf_prog *prog, struct xdp_buff *xdp) argument [all...] |
H A D | xdp_sock_drv.h | 65 return pool->heads[0].xdp.rxq->napi_id; 85 static inline dma_addr_t xsk_buff_xdp_get_dma(struct xdp_buff *xdp) argument 87 struct xdp_buff_xsk *xskb = container_of(xdp, struct xdp_buff_xsk, xdp); 92 static inline dma_addr_t xsk_buff_xdp_get_frame_dma(struct xdp_buff *xdp) argument 94 struct xdp_buff_xsk *xskb = container_of(xdp, struct xdp_buff_xsk, xdp); 110 static inline u32 xsk_buff_alloc_batch(struct xsk_buff_pool *pool, struct xdp_buff **xdp, u32 max) argument 112 return xp_alloc_batch(pool, xdp, max); 120 static inline void xsk_buff_free(struct xdp_buff *xdp) argument 139 xsk_buff_add_frag(struct xdp_buff *xdp) argument 179 xsk_buff_set_size(struct xdp_buff *xdp, u32 size) argument 222 xsk_buff_dma_sync_for_cpu(struct xdp_buff *xdp, struct xsk_buff_pool *pool) argument 328 xsk_buff_xdp_get_dma(struct xdp_buff *xdp) argument 333 xsk_buff_xdp_get_frame_dma(struct xdp_buff *xdp) argument 348 xsk_buff_alloc_batch(struct xsk_buff_pool *pool, struct xdp_buff **xdp, u32 max) argument 358 xsk_buff_free(struct xdp_buff *xdp) argument 362 xsk_buff_add_frag(struct xdp_buff *xdp) argument 380 xsk_buff_set_size(struct xdp_buff *xdp, u32 size) argument 405 xsk_buff_dma_sync_for_cpu(struct xdp_buff *xdp, struct xsk_buff_pool *pool) argument [all...] |
H A D | xdp_priv.h | 6 #include <net/xdp.h> 8 /* Private to net/core/xdp.c, but used by trace/events/xdp.h */
|
/linux-master/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) argument 18 NL_SET_ERR_MSG_MOD(xdp->extack, 19 "Allow to set xdp only when using fdma"); 24 old_prog = xchg(&port->xdp_prog, xdp->prog); 43 int lan966x_xdp(struct net_device *dev, struct netdev_bpf *xdp) argument 45 switch (xdp->command) { 47 return lan966x_xdp_setup(dev, xdp); 79 struct xdp_buff xdp; local 82 xdp_init_buff(&xdp, PAGE_SIZE << lan966x->rx.page_order, 84 xdp_prepare_buff(&xdp, page_addres [all...] |
/linux-master/drivers/net/ethernet/broadcom/bnxt/ |
H A D | bnxt_xdp.h | 18 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-master/samples/bpf/ |
H A D | xdp_adjust_tail_kern.c | 70 static __always_inline int send_icmp4_too_big(struct xdp_md *xdp) argument 74 if (bpf_xdp_adjust_head(xdp, 0 - headroom)) 76 void *data = (void *)(long)xdp->data; 77 void *data_end = (void *)(long)xdp->data_end; 120 static __always_inline int handle_ipv4(struct xdp_md *xdp) argument 122 void *data_end = (void *)(long)xdp->data_end; 123 void *data = (void *)(long)xdp->data; 129 if (bpf_xdp_adjust_tail(xdp, 0 - offset)) 131 return send_icmp4_too_big(xdp); 137 int _xdp_icmp(struct xdp_md *xdp) argument [all...] |
H A D | xdp_tx_iptunnel_kern.c | 77 static __always_inline int handle_ipv4(struct xdp_md *xdp) argument 79 void *data_end = (void *)(long)xdp->data_end; 80 void *data = (void *)(long)xdp->data; 112 if (bpf_xdp_adjust_head(xdp, 0 - (int)sizeof(struct iphdr))) 115 data = (void *)(long)xdp->data; 116 data_end = (void *)(long)xdp->data_end; 152 static __always_inline int handle_ipv6(struct xdp_md *xdp) argument 154 void *data_end = (void *)(long)xdp->data_end; 155 void *data = (void *)(long)xdp->data; 184 if (bpf_xdp_adjust_head(xdp, 216 _xdp_tx_iptunnel(struct xdp_md *xdp) argument [all...] |
/linux-master/drivers/net/ethernet/netronome/nfp/ |
H A D | nfp_net_xsk.c | 9 #include <trace/events/xdp.h> 18 struct xdp_buff *xdp) 27 rx_ring->xsk_rxbufs[idx].xdp = xdp; 29 xsk_buff_xdp_get_frame_dma(xdp) + headroom; 35 rxbuf->xdp = NULL; 40 if (rxbuf->xdp) 41 xsk_buff_free(rxbuf->xdp); 62 struct xdp_buff *xdp; local 67 xdp 17 nfp_net_xsk_rx_bufs_stash(struct nfp_net_rx_ring *rx_ring, unsigned int idx, struct xdp_buff *xdp) argument [all...] |
/linux-master/tools/testing/selftests/bpf/ |
H A D | test_xdp_veth.sh | 64 if ! ip link set dev lo xdp off > /dev/null 2>&1; then 65 echo "selftests: $TESTNAME [SKIP] Could not run test without the ip xdp support" 104 xdp_redirect_map.bpf.o $BPF_DIR/progs type xdp \ 109 ip link set dev veth1 xdp pinned $BPF_DIR/progs/xdp_redirect_map_0 110 ip link set dev veth2 xdp pinned $BPF_DIR/progs/xdp_redirect_map_1 111 ip link set dev veth3 xdp pinned $BPF_DIR/progs/xdp_redirect_map_2 113 ip -n ${NS1} link set dev veth11 xdp obj xdp_dummy.bpf.o sec xdp 114 ip -n ${NS2} link set dev veth22 xdp obj xdp_tx.bpf.o sec xdp [all...] |