Skip to content

Commit

Permalink
Add link to an article on EBPF software licenses
Browse files Browse the repository at this point in the history
Signed-off-by: Andy Fingerhut <[email protected]>
  • Loading branch information
jafingerhut committed Jan 29, 2025
1 parent daa4171 commit 906fcf1
Showing 1 changed file with 25 additions and 1 deletion.
26 changes: 25 additions & 1 deletion docs/licenses.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,13 +133,37 @@ Linux driver code for their hardware and not releasing the source
code, we leave it to their legal teams to navigate any of the
intricacies that may be involved in that endeavor.

Our plan is to release all of the following kinds of source files
[5] is a good introduction to software licensing questions related to
using EBPF.

[5] https://ebpf.io/blog/ebpf-licensing-guide/

While it is _possible_ to write restricted EBPF programs that are
loaded into the Linux kernel that can be distributed under a non-GPL
license, these are the exception, not the rule.

Do companies using EBPF distribute these programs under GPL 2.0? Yes,
they commonly do. The EBPF code loaded and run in the Linux kernel is
the "data plane" part of the system. The "control plane" part of the
system runs in user space applications on Linux, and these can be
distributed under other licenses, including proprietary licenses. 98%
or more of the code of these systems is in the control plane code.
The data plane code by itself is unlikely to cause any significant
loss of competitive advantage to publicize it.

Thus our plan is to release all of the following kinds of source files
under the GPL v2.0 license, the same as the Linux kernel:

(a) files that are intended to be compiled and loaded into the kernel
via EBPF.
(b) header files included from files in category (a).

Note that this list of files appear to consist of _only_ 2 source
files in the entire p4c repository. Most of the source files related
to EBPF are part of a p4c back end that uses EBPF, which can be
Apache-2.0 licensed, or they are control plane source files used for
testing the EBPF programs loaded into the kernel.

If any subtle questions arise as to whether a particular P4 compiler
back end, e.g. `p4c-ebpf`, must thus be released under GPL v2.0, we
will raise these questions to the P4 Technical Steering Team for their
Expand Down

0 comments on commit 906fcf1

Please sign in to comment.