Lines Matching +full:in +full:- +full:functions
10 "BPF" was originally introduced as BSD Packet Filter in
11 http://www.tcpdump.org/papers/bpf-usenix93.pdf. The corresponding instruction
15 However an instruction set is a specification for machine-language interaction,
17 application of a BSD license may be misleading in a certain context, as the
22 In 2014, the classic BPF instruction set was significantly extended. We
29 Using the eBPF instruction set requires implementing code in both kernel space
32 In Linux Kernel
33 ---------------
35 The reference implementations of the eBPF interpreter and various just-in-time
37 eBPF helper functions is also GPLv2 licensed. Interpreters, JITs, helpers,
40 In User Space
41 -------------
44 functions) under
49 In HW
50 -----
53 in HW or via the use of implementing firmware with a proprietary license.
55 In other operating systems
56 --------------------------
61 Using BPF programs in the Linux kernel
66 Documentation/process/license-rules.rst
68 When a kernel module is loaded, the linux kernel checks which functions it
76 helper functions.
78 Further, some BPF program types - Linux Security Modules (LSM) and TCP
79 Congestion Control (struct_ops), as of Aug 2021 - are required to be GPL
80 compatible even if they don't use "GPL only" helper functions directly. The
82 kernel is done through EXPORT_SYMBOL_GPL kernel functions. In that sense LSM
83 and struct_ops BPF programs are implicitly calling "GPL only" functions.
84 The same restriction applies to BPF programs that call kernel functions
90 Generally, proprietary-licensed applications and GPL licensed BPF programs
91 written for the Linux kernel in the same package can co-exist because they are