Skip to content

Commit 906fcf1

Browse files
committed
Add link to an article on EBPF software licenses
Signed-off-by: Andy Fingerhut <andy_fingerhut@alum.wustl.edu>
1 parent daa4171 commit 906fcf1

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

docs/licenses.md

+25-1
Original file line numberDiff line numberDiff line change
@@ -133,13 +133,37 @@ Linux driver code for their hardware and not releasing the source
133133
code, we leave it to their legal teams to navigate any of the
134134
intricacies that may be involved in that endeavor.
135135

136-
Our plan is to release all of the following kinds of source files
136+
[5] is a good introduction to software licensing questions related to
137+
using EBPF.
138+
139+
[5] https://ebpf.io/blog/ebpf-licensing-guide/
140+
141+
While it is _possible_ to write restricted EBPF programs that are
142+
loaded into the Linux kernel that can be distributed under a non-GPL
143+
license, these are the exception, not the rule.
144+
145+
Do companies using EBPF distribute these programs under GPL 2.0? Yes,
146+
they commonly do. The EBPF code loaded and run in the Linux kernel is
147+
the "data plane" part of the system. The "control plane" part of the
148+
system runs in user space applications on Linux, and these can be
149+
distributed under other licenses, including proprietary licenses. 98%
150+
or more of the code of these systems is in the control plane code.
151+
The data plane code by itself is unlikely to cause any significant
152+
loss of competitive advantage to publicize it.
153+
154+
Thus our plan is to release all of the following kinds of source files
137155
under the GPL v2.0 license, the same as the Linux kernel:
138156

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

161+
Note that this list of files appear to consist of _only_ 2 source
162+
files in the entire p4c repository. Most of the source files related
163+
to EBPF are part of a p4c back end that uses EBPF, which can be
164+
Apache-2.0 licensed, or they are control plane source files used for
165+
testing the EBPF programs loaded into the kernel.
166+
143167
If any subtle questions arise as to whether a particular P4 compiler
144168
back end, e.g. `p4c-ebpf`, must thus be released under GPL v2.0, we
145169
will raise these questions to the P4 Technical Steering Team for their

0 commit comments

Comments
 (0)