Directory Files
.. 126
preload 5
File Size
Kconfig 3.1 kB
Makefile 1.9 kB
arraymap.c 38 kB
bloom_filter.c 5.6 kB
bpf_cgrp_storage.c 6.1 kB
bpf_inode_storage.c 6.1 kB
bpf_iter.c 20 kB
bpf_local_storage.c 27 kB
bpf_lru_list.c 18 kB
bpf_lru_list.h 2.0 kB
bpf_lsm.c 11 kB
bpf_struct_ops.c 24 kB
bpf_struct_ops_types.h 262 B
bpf_task_storage.c 9.5 kB
btf.c 226 kB
cgroup.c 68 kB
cgroup_iter.c 8.7 kB
core.c 77 kB
cpumap.c 20 kB
cpumask.c 14 kB
devmap.c 31 kB
disasm.c 11 kB
disasm.h 1.1 kB
dispatcher.c 4.4 kB
hashtab.c 70 kB
helpers.c 68 kB
inode.c 17 kB
link_iter.c 2.5 kB
local_storage.c 15 kB
log.c 9.2 kB
lpm_trie.c 22 kB
map_in_map.c 3.7 kB
map_in_map.h 461 B
map_iter.c 5.5 kB
memalloc.c 27 kB
mmap_unlock_work.h 1.8 kB
mprog.c 12 kB
net_namespace.c 13 kB
offload.c 20 kB
percpu_freelist.c 4.8 kB
percpu_freelist.h 1.1 kB
prog_iter.c 2.4 kB
queue_stack_maps.c 7.2 kB
reuseport_array.c 8.8 kB
ringbuf.c 23 kB
stackmap.c 18 kB
syscall.c 141 kB
sysfs_btf.c 1.1 kB
task_iter.c 21 kB
tcx.c 8.1 kB
tnum.c 5.2 kB
trampoline.c 27 kB
verifier.c 594 kB

Linux v6.6.1 - bpf

# SPDX-License-Identifier: GPL-2.0-only

# BPF interpreter that, for example, classic socket filters depend on.
config BPF
	bool

# Used by archs to tell that they support BPF JIT compiler plus which
# flavour. Only one of the two can be selected for a specific arch since
# eBPF JIT supersedes the cBPF JIT.

# Classic BPF JIT (cBPF)
config HAVE_CBPF_JIT
	bool

# Extended BPF JIT (eBPF)
config HAVE_EBPF_JIT
	bool

# Used by archs to tell that they want the BPF JIT compiler enabled by
# default for kernels that were compiled with BPF JIT support.
config ARCH_WANT_DEFAULT_BPF_JIT
	bool

menu "BPF subsystem"

config BPF_SYSCALL
	bool "Enable bpf() system call"
	select BPF
	select IRQ_WORK
	select TASKS_RCU if PREEMPTION
	select TASKS_TRACE_RCU
	select BINARY_PRINTF
	select NET_SOCK_MSG if NET
	select NET_XGRESS if NET
	select PAGE_POOL if NET
	default n
	help
	  Enable the bpf() system call that allows to manipulate BPF programs
	  and maps via file descriptors.

config BPF_JIT
	bool "Enable BPF Just In Time compiler"
	depends on BPF
	depends on HAVE_CBPF_JIT || HAVE_EBPF_JIT
	depends on MODULES
	help
	  BPF programs are normally handled by a BPF interpreter. This option
	  allows the kernel to generate native code when a program is loaded
	  into the kernel. This will significantly speed-up processing of BPF
	  programs.

	  Note, an admin should enable this feature changing:
	  /proc/sys/net/core/bpf_jit_enable
	  /proc/sys/net/core/bpf_jit_harden   (optional)
	  /proc/sys/net/core/bpf_jit_kallsyms (optional)

config BPF_JIT_ALWAYS_ON
	bool "Permanently enable BPF JIT and remove BPF interpreter"
	depends on BPF_SYSCALL && HAVE_EBPF_JIT && BPF_JIT
	help
	  Enables BPF JIT and removes BPF interpreter to avoid speculative
	  execution of BPF instructions by the interpreter.

	  When CONFIG_BPF_JIT_ALWAYS_ON is enabled, /proc/sys/net/core/bpf_jit_enable
	  is permanently set to 1 and setting any other value than that will
	  return failure.

config BPF_JIT_DEFAULT_ON
	def_bool ARCH_WANT_DEFAULT_BPF_JIT || BPF_JIT_ALWAYS_ON
	depends on HAVE_EBPF_JIT && BPF_JIT

config BPF_UNPRIV_DEFAULT_OFF
	bool "Disable unprivileged BPF by default"
	default y
	depends on BPF_SYSCALL
	help
	  Disables unprivileged BPF by default by setting the corresponding
	  /proc/sys/kernel/unprivileged_bpf_disabled knob to 2. An admin can
	  still reenable it by setting it to 0 later on, or permanently
	  disable it by setting it to 1 (from which no other transition to
	  0 is possible anymore).

	  Unprivileged BPF could be used to exploit certain potential
	  speculative execution side-channel vulnerabilities on unmitigated
	  affected hardware.

	  If you are unsure how to answer this question, answer Y.

source "kernel/bpf/preload/Kconfig"

config BPF_LSM
	bool "Enable BPF LSM Instrumentation"
	depends on BPF_EVENTS
	depends on BPF_SYSCALL
	depends on SECURITY
	depends on BPF_JIT
	help
	  Enables instrumentation of the security hooks with BPF programs for
	  implementing dynamic MAC and Audit Policies.

	  If you are unsure how to answer this question, answer N.

endmenu # "BPF subsystem"