/Linux-v5.4/drivers/net/ethernet/netronome/nfp/bpf/ |
D | main.c | 27 struct nfp_app_bpf *bpf = nn->app->priv; in nfp_net_ebpf_capable() local 30 bpf->abi_version && in nfp_net_ebpf_capable() 31 nn_readb(nn, NFP_NET_CFG_BPF_ABI) == bpf->abi_version; in nfp_net_ebpf_capable() 200 nfp_bpf_parse_cap_adjust_head(struct nfp_app_bpf *bpf, void __iomem *value, in nfp_bpf_parse_cap_adjust_head() argument 204 struct nfp_cpp *cpp = bpf->app->pf->cpp; in nfp_bpf_parse_cap_adjust_head() 211 bpf->adjust_head.flags = readl(&cap->flags); in nfp_bpf_parse_cap_adjust_head() 212 bpf->adjust_head.off_min = readl(&cap->off_min); in nfp_bpf_parse_cap_adjust_head() 213 bpf->adjust_head.off_max = readl(&cap->off_max); in nfp_bpf_parse_cap_adjust_head() 214 bpf->adjust_head.guaranteed_sub = readl(&cap->guaranteed_sub); in nfp_bpf_parse_cap_adjust_head() 215 bpf->adjust_head.guaranteed_add = readl(&cap->guaranteed_add); in nfp_bpf_parse_cap_adjust_head() [all …]
|
D | cmsg.c | 18 nfp_bpf_cmsg_alloc(struct nfp_app_bpf *bpf, unsigned int size) in nfp_bpf_cmsg_alloc() argument 22 skb = nfp_app_ctrl_msg_alloc(bpf->app, size, GFP_KERNEL); in nfp_bpf_cmsg_alloc() 29 nfp_bpf_cmsg_map_req_size(struct nfp_app_bpf *bpf, unsigned int n) in nfp_bpf_cmsg_map_req_size() argument 34 size += (bpf->cmsg_key_sz + bpf->cmsg_val_sz) * n; in nfp_bpf_cmsg_map_req_size() 40 nfp_bpf_cmsg_map_req_alloc(struct nfp_app_bpf *bpf, unsigned int n) in nfp_bpf_cmsg_map_req_alloc() argument 42 return nfp_bpf_cmsg_alloc(bpf, nfp_bpf_cmsg_map_req_size(bpf, n)); in nfp_bpf_cmsg_map_req_alloc() 46 nfp_bpf_cmsg_map_reply_size(struct nfp_app_bpf *bpf, unsigned int n) in nfp_bpf_cmsg_map_reply_size() argument 51 size += (bpf->cmsg_key_sz + bpf->cmsg_val_sz) * n; in nfp_bpf_cmsg_map_reply_size() 57 nfp_bpf_ctrl_rc_to_errno(struct nfp_app_bpf *bpf, in nfp_bpf_ctrl_rc_to_errno() argument 74 cmsg_warn(bpf, "FW responded with invalid status: %u\n", rc); in nfp_bpf_ctrl_rc_to_errno() [all …]
|
D | offload.c | 31 nfp_map_ptr_record(struct nfp_app_bpf *bpf, struct nfp_prog *nfp_prog, in nfp_map_ptr_record() argument 38 record = rhashtable_lookup_fast(&bpf->maps_neutral, &map->id, in nfp_map_ptr_record() 63 err = rhashtable_insert_fast(&bpf->maps_neutral, &record->l, in nfp_map_ptr_record() 80 nfp_map_ptrs_forget(struct nfp_app_bpf *bpf, struct nfp_prog *nfp_prog) in nfp_map_ptrs_forget() argument 91 WARN_ON(rhashtable_remove_fast(&bpf->maps_neutral, in nfp_map_ptrs_forget() 113 nfp_map_ptrs_record(struct nfp_app_bpf *bpf, struct nfp_prog *nfp_prog, in nfp_map_ptrs_record() argument 134 err = nfp_map_ptr_record(bpf, nfp_prog, in nfp_map_ptrs_record() 137 nfp_map_ptrs_forget(bpf, nfp_prog); in nfp_map_ptrs_record() 199 nfp_prog->bpf = bpf_offload_dev_priv(prog->aux->offload->offdev); in nfp_bpf_verifier_prep() 240 return nfp_map_ptrs_record(nfp_prog->bpf, nfp_prog, prog); in nfp_bpf_translate() [all …]
|
D | main.h | 21 #define cmsg_warn(bpf, msg...) nn_dp_warn(&(bpf)->app->ctrl->dp, msg) argument 211 struct nfp_app_bpf *bpf; member 514 struct nfp_app_bpf *bpf; member 579 struct netdev_bpf *bpf); 589 unsigned int nfp_bpf_ctrl_cmsg_min_mtu(struct nfp_app_bpf *bpf); 590 unsigned int nfp_bpf_ctrl_cmsg_mtu(struct nfp_app_bpf *bpf); 591 unsigned int nfp_bpf_ctrl_cmsg_cache_cnt(struct nfp_app_bpf *bpf); 593 nfp_bpf_ctrl_alloc_map(struct nfp_app_bpf *bpf, struct bpf_map *map); 595 nfp_bpf_ctrl_free_map(struct nfp_app_bpf *bpf, struct nfp_bpf_map *nfp_map); 606 int nfp_bpf_event_output(struct nfp_app_bpf *bpf, const void *data,
|
/Linux-v5.4/drivers/net/netdevsim/ |
D | bpf.c | 175 static int nsim_xdp_offload_prog(struct netdevsim *ns, struct netdev_bpf *bpf) in nsim_xdp_offload_prog() argument 177 if (!nsim_xdp_offload_active(ns) && !bpf->prog) in nsim_xdp_offload_prog() 179 if (!nsim_xdp_offload_active(ns) && bpf->prog && ns->bpf_offloaded) { in nsim_xdp_offload_prog() 180 NSIM_EA(bpf->extack, "TC program is already loaded"); in nsim_xdp_offload_prog() 184 return nsim_bpf_offload(ns, bpf->prog, nsim_xdp_offload_active(ns)); in nsim_xdp_offload_prog() 188 nsim_xdp_set_prog(struct netdevsim *ns, struct netdev_bpf *bpf, in nsim_xdp_set_prog() argument 193 if (!xdp_attachment_flags_ok(xdp, bpf)) in nsim_xdp_set_prog() 196 if (bpf->command == XDP_SETUP_PROG && !ns->bpf_xdpdrv_accept) { in nsim_xdp_set_prog() 197 NSIM_EA(bpf->extack, "driver XDP disabled in DebugFS"); in nsim_xdp_set_prog() 200 if (bpf->command == XDP_SETUP_PROG_HW && !ns->bpf_xdpoffload_accept) { in nsim_xdp_set_prog() [all …]
|
/Linux-v5.4/tools/testing/selftests/bpf/ |
D | test_bpftool_build.sh | 88 make_and_clean tools/bpf 96 make_with_tmpdir tools/bpf O 105 make_and_clean -C tools/bpf/bpftool 107 make_with_tmpdir -C tools/bpf/bpftool OUTPUT 109 make_with_tmpdir -C tools/bpf/bpftool O 114 make_and_clean bpf 134 make_with_tmpdir bpf O 137 cd bpf/bpftool
|
D | Makefile | 6 BPFDIR := $(LIBDIR)/bpf 20 BPF_GCC ?= $(shell command -v bpf-gcc;) 43 $(CLANG) -target bpf -O2 -emit-llvm -S -x c - -o - | \ 129 PROBE := $(shell $(LLC) -march=bpf -mcpu=probe -filetype=null /dev/null 2>&1) 165 BTF_LLC_PROBE := $(shell $(LLC) -march=bpf -mattr=help 2>&1 | grep dwarfris) 169 $(CLANG) -target bpf -O2 -g -c -x c - -o ./llvm_btf_verify.o; \ 213 ($(CLANG) $(BPF_CFLAGS) $(CLANG_CFLAGS) -O2 -target bpf -emit-llvm \ 215 $(LLC) -march=bpf -mattr=+alu32 -mcpu=$(CPU) $(LLC_FLAGS) \ 254 $(LLC) -march=bpf -mcpu=$(CPU) $(LLC_FLAGS) -filetype=obj -o $@ 260 ($(CLANG) $(BPF_CFLAGS) $(CLANG_CFLAGS) -O2 -target bpf -emit-llvm \ [all …]
|
/Linux-v5.4/net/core/ |
D | lwt_bpf.c | 118 struct bpf_lwt *bpf; in bpf_input() local 121 bpf = bpf_lwt_lwtunnel(dst->lwtstate); in bpf_input() 122 if (bpf->in.prog) { in bpf_input() 123 ret = run_lwt_bpf(skb, &bpf->in, dst, NO_REDIRECT); in bpf_input() 141 struct bpf_lwt *bpf; in bpf_output() local 144 bpf = bpf_lwt_lwtunnel(dst->lwtstate); in bpf_output() 145 if (bpf->out.prog) { in bpf_output() 146 ret = run_lwt_bpf(skb, &bpf->out, dst, NO_REDIRECT); in bpf_output() 153 bpf->out.name); in bpf_output() 274 struct bpf_lwt *bpf; in bpf_xmit() local [all …]
|
/Linux-v5.4/kernel/bpf/ |
D | cgroup.c | 28 percpu_ref_kill(&cgrp->bpf.refcnt); in cgroup_bpf_offline() 39 bpf.release_work); in cgroup_bpf_release() 46 for (type = 0; type < ARRAY_SIZE(cgrp->bpf.progs); type++) { in cgroup_bpf_release() 47 struct list_head *progs = &cgrp->bpf.progs[type]; in cgroup_bpf_release() 61 cgrp->bpf.effective[type], in cgroup_bpf_release() 68 percpu_ref_exit(&cgrp->bpf.refcnt); in cgroup_bpf_release() 79 struct cgroup *cgrp = container_of(ref, struct cgroup, bpf.refcnt); in cgroup_bpf_release_fn() 81 INIT_WORK(&cgrp->bpf.release_work, cgroup_bpf_release); in cgroup_bpf_release_fn() 82 queue_work(system_wq, &cgrp->bpf.release_work); in cgroup_bpf_release_fn() 115 u32 flags = p->bpf.flags[type]; in hierarchy_allows_attach() [all …]
|
/Linux-v5.4/samples/seccomp/ |
D | Makefile | 3 hostprogs-y := bpf-fancy dropper bpf-direct user-trap 9 bpf-fancy-objs := bpf-fancy.o bpf-helper.o 17 bpf-direct-objs := bpf-direct.o
|
/Linux-v5.4/tools/bpf/bpftool/Documentation/ |
D | bpftool-net.rst | 5 tool for inspection of netdev/tc related bpf prog attachments 34 List bpf program attachments in the kernel networking subsystem. 45 bpf programs, users should consult other tools, e.g., iproute2. 48 all tc class/qdisc bpf program attachments. Both xdp programs and 49 tc programs are ordered based on ifindex number. If multiple bpf 51 the order will be first all bpf programs attached to tc classes, then 52 all bpf programs attached to non clsact qdiscs, and finally all 53 bpf programs attached to root and clsact qdisc. 56 Attach bpf program *PROG* to network interface *NAME* with 57 type specified by *ATTACH_TYPE*. Previously attached bpf program [all …]
|
D | bpftool-map.rst | 134 **bpf\ ()** system call. This operation is not reversible, 206 | **# mount -t bpf none /sys/fs/bpf/** 207 | **# bpftool map pin id 10 /sys/fs/bpf/map** 208 | **# bpftool map del pinned /sys/fs/bpf/map key 13 00 07 00** 222 | **# bpftool prog loadall tail_calls.o /sys/fs/bpf/foo type xdp** 230 pinned /sys/fs/bpf/foo/xdp 234 pinned /sys/fs/bpf/foo/process 238 pinned /sys/fs/bpf/foo/debug 249 | **# bpftool map pin id 294 /sys/fs/bpf/bar** 250 | **# bpftool map dump pinned /sys/fs/bpf/bar** [all …]
|
/Linux-v5.4/Documentation/bpf/ |
D | bpf_devel_QA.rst | 70 Those patches which target BPF, are assigned to a 'bpf' delegate for 86 the 'bpf' delegate). 94 * https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/ 95 * https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/ 97 The bpf tree itself is for fixes only, whereas bpf-next for features, 99 analogous to net and net-next trees for networking. Both bpf and 100 bpf-next will only have a master branch in order to simplify against 103 Accumulated BPF patches in the bpf tree will regularly get pulled 105 into the bpf-next tree will make their way into net-next tree. net and 122 pull-request: bpf yyyy-mm-dd [all …]
|
D | index.rst | 15 The primary info for the bpf syscall is available in the `man-pages`_ 16 for `bpf(2)`_. 53 .. _bpf(2): http://man7.org/linux/man-pages/man2/bpf.2.html 54 .. _BPF and XDP Reference Guide: http://cilium.readthedocs.io/en/latest/bpf/
|
/Linux-v5.4/tools/lib/bpf/ |
D | Makefile | 169 @(test -f ../../include/uapi/linux/bpf.h -a -f ../../../include/uapi/linux/bpf.h && ( \ 170 (diff -B ../../include/uapi/linux/bpf.h ../../../include/uapi/linux/bpf.h >/dev/null) || \ 252 $(call do_install,bpf.h,$(prefix)/include/bpf,644); \ 253 $(call do_install,libbpf.h,$(prefix)/include/bpf,644); \ 254 $(call do_install,btf.h,$(prefix)/include/bpf,644); \ 255 $(call do_install,libbpf_util.h,$(prefix)/include/bpf,644); \ 256 $(call do_install,xsk.h,$(prefix)/include/bpf,644);
|
/Linux-v5.4/samples/bpf/ |
D | README.rst | 5 for using eBPF. The examples use libbpf from tools/lib/bpf. 14 Note that LLVM's tool 'llc' must support target 'bpf', list version 35 make samples/bpf/ 42 Manually compiling LLVM with 'bpf' support 48 By default llvm will build all non-experimental backends including bpf. 66 make samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang 76 make samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang
|
D | run_cookie_uid_helper_example.sh | 8 iptables -D OUTPUT -m bpf --object-pinned ${mnt_dir}/bpf_prog -j ACCEPT 14 mount -t bpf bpf ${mnt_dir}
|
D | tc_l2_redirect.sh | 45 $IP netns exec ns2 $TC filter add dev vens2 ingress bpf da obj $REDIRECT_BPF sec drop_non_tun_vip 63 $TC filter add dev ve2 ingress bpf da obj $REDIRECT_BPF sec l2_to_iptun_ingress_forward 80 rm -f /sys/fs/bpf/tc/globals/tun_iface 99 $TC filter add dev ve2 egress bpf da obj $REDIRECT_BPF sec l2_to_iptun_ingress_redirect 103 $TC filter add dev ve1 ingress bpf da obj $REDIRECT_BPF sec l2_to_iptun_ingress_redirect 106 $REDIRECT_USER -U /sys/fs/bpf/tc/globals/tun_iface -i $(< /sys/class/net/ipt/ifindex) 136 $TC filter add dev ve2 egress bpf da obj $REDIRECT_BPF sec l2_to_ip6tun_ingress_redirect 140 $TC filter add dev ve1 ingress bpf da obj $REDIRECT_BPF sec l2_to_ip6tun_ingress_redirect 143 $REDIRECT_USER -U /sys/fs/bpf/tc/globals/tun_iface -i $(< /sys/class/net/ip6t/ifindex)
|
D | Makefile | 58 LIBBPF = $(TOOLS_PATH)/lib/bpf/libbpf.a 60 CGROUP_HELPERS := ../../tools/testing/selftests/bpf/cgroup_helpers.o 61 TRACE_HELPERS := ../../tools/testing/selftests/bpf/trace_helpers.o 175 KBUILD_HOSTCFLAGS += -I$(srctree)/tools/lib/bpf/ 176 KBUILD_HOSTCFLAGS += -I$(srctree)/tools/testing/selftests/bpf/ 214 BTF_LLC_PROBE := $(shell $(LLC) -march=bpf -mattr=help 2>&1 | grep dwarfris) 218 $(CLANG) -target bpf -O2 -g -c -x c - -o ./llvm_btf_verify.o; \ 266 @if ! (${LLC} -march=bpf -mattr=help > /dev/null 2>&1); then \ 286 -I$(srctree)/tools/testing/selftests/bpf/ \ 292 -I$(srctree)/samples/bpf/ -include asm_goto_workaround.h \ [all …]
|
/Linux-v5.4/drivers/net/ethernet/netronome/nfp/ |
D | Makefile | 59 bpf/cmsg.o \ 60 bpf/main.o \ 61 bpf/offload.o \ 62 bpf/verifier.o \ 63 bpf/jit.o
|
/Linux-v5.4/arch/um/drivers/ |
D | vector_user.c | 663 int uml_vector_attach_bpf(int fd, void *bpf, int bpf_len) in uml_vector_attach_bpf() argument 665 int err = setsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER, bpf, bpf_len); in uml_vector_attach_bpf() 676 struct sock_filter *bpf; in uml_vector_default_bpf() local 684 bpf = uml_kmalloc( in uml_vector_default_bpf() 686 if (bpf != NULL) { in uml_vector_default_bpf() 687 bpf_prog.filter = bpf; in uml_vector_default_bpf() 689 bpf[0] = (struct sock_filter){ 0x20, 0, 0, 0x00000008 }; in uml_vector_default_bpf() 691 bpf[1] = (struct sock_filter){ 0x15, 0, 3, ntohl(*mac1)}; in uml_vector_default_bpf() 693 bpf[2] = (struct sock_filter){ 0x28, 0, 0, 0x00000006 }; in uml_vector_default_bpf() 695 bpf[3] = (struct sock_filter){ 0x15, 0, 1, ntohs(*mac2)}; in uml_vector_default_bpf() [all …]
|
/Linux-v5.4/tools/bpf/ |
D | Makefile | 30 FEATURE_USER = .bpf 54 $(OUTPUT)%.yacc.c: $(srctree)/tools/bpf/%.y 57 $(OUTPUT)%.lex.c: $(srctree)/tools/bpf/%.l 60 $(OUTPUT)%.o: $(srctree)/tools/bpf/%.c 87 $(call QUIET_CLEAN, bpf-progs) 91 $(Q)$(RM) -- $(OUTPUT)FEATURE-DUMP.bpf
|
/Linux-v5.4/net/xdp/ |
D | xdp_umem.c | 94 struct netdev_bpf bpf; in xdp_umem_assign_dev() local 135 bpf.command = XDP_SETUP_XSK_UMEM; in xdp_umem_assign_dev() 136 bpf.xsk.umem = umem; in xdp_umem_assign_dev() 137 bpf.xsk.queue_id = queue_id; in xdp_umem_assign_dev() 139 err = dev->netdev_ops->ndo_bpf(dev, &bpf); in xdp_umem_assign_dev() 156 struct netdev_bpf bpf; in xdp_umem_clear_dev() local 165 bpf.command = XDP_SETUP_XSK_UMEM; in xdp_umem_clear_dev() 166 bpf.xsk.umem = NULL; in xdp_umem_clear_dev() 167 bpf.xsk.queue_id = umem->queue_id; in xdp_umem_clear_dev() 169 err = umem->dev->netdev_ops->ndo_bpf(umem->dev, &bpf); in xdp_umem_clear_dev()
|
/Linux-v5.4/tools/testing/selftests/tc-testing/bpf/ |
D | Makefile | 12 PROBE := $(shell $(LLC) -march=bpf -mcpu=probe -filetype=null /dev/null 2>&1) 29 -O2 -target bpf -emit-llvm -c $< -o - | \ 30 $(LLC) -march=bpf -mcpu=$(CPU) $(LLC_FLAGS) -filetype=obj -o $@
|
/Linux-v5.4/Documentation/ABI/testing/ |
D | sysfs-kernel-btf | 4 Contact: bpf@vger.kernel.org 12 Contact: bpf@vger.kernel.org 16 Documentation/bpf/btf.rst for detailed description of format
|