[vpp-dev] Scapy license in VPP


Vratko Polak -X (vrpolak - PANTHEON TECHNOLOGIES at Cisco)
 

Few quick comments and links.

 

Turns out GPLv2-or-later is not by itself compatible with Apache [2],

we need to use GPLv3 (which is compatible with both).

 

The questions on dynamic linking are still open [3] [4] [5].

 

We probably need to distinguish several Programs

available from VPP repository.

VPP PAPI (library) is a separate distribution

from VPP test framework.

 

When a user starts VPP test framework,

linking with VPP PAPI in runtime,

therefore creating a derived work.

GPLv3 would apply to that Program,

but it does not mean we need to mention GPLv3

in VPP PAPI license headers.

 

This only works because VPP PAPI does not share

any code nor data structures specific to VPP test framework.

Modules which link with Scapy do share data structures,

so the "derived work" nature is apparent already in repo.

 

Vratko.

 

[2] https://www.gnu.org/licenses/license-list.html#apache2

[3] https://tech.popdata.org/the-gpl-license-and-linking-still-unclear-after-30-years/

[4] https://lwn.net/Articles/548216/

[5] https://www.kilpatricktownsend.com/-/media/2019/IP-Desk-Reference-2015/A-Practical-Guide-to-Open-Source-Software.ashx?la=en&hash=895293E77B462CF85E4D3E80AF8DC83143D0C165

 

From: vpp-dev@... <vpp-dev@...> On Behalf Of Vratko Polak -X (vrpolak - PANTHEON TECHNOLOGIES at Cisco) via lists.fd.io
Sent: Friday, 2021-January-29 18:10
To: Paul Vinciguerra <pvinci@...>
Cc: tsc@...; Kinsella, Ray <ray.kinsella@...>; vpp-dev@...
Subject: Re: [vpp-dev] Scapy license in VPP

 

> Why do you say that vpp_papi need to be dual licensed?

 

I think e-mail reply would be long,

and I will need to address comments anyway,

so I respond via a Gerrit change [1].

 

Vratko.

 

[1] https://gerrit.fd.io/r/c/vpp/+/31025

 

From: Paul Vinciguerra <pvinci@...>
Sent: Friday, 2021-January-29 15:29
To: Vratko Polak -X (vrpolak - PANTHEON TECH SRO at Cisco) <vrpolak@...>
Cc: tsc@...; Kinsella, Ray <ray.kinsella@...>; vpp-dev@...
Subject: Re: [vpp-dev] Scapy license in VPP

 

Why do you say that vpp_papi need to be dual licensed?

 

On Thu, Jan 28, 2021 at 12:43 PM Vratko Polak -X (vrpolak - PANTHEON TECHNOLOGIES at Cisco) via lists.fd.io <vrpolak=cisco.com@...> wrote:

First draft created [0] for the change that will switch

licenses for Python files used together with Scapy.

 

For some files, I was not sure whether they are used together with Scapy.

One big detail is that vpp_papi needs to have dual license,

as test framework integrates with it (and with scapy).

If I understand the licensing logic correctly,

CSIT tests can still choose to use vpp_papi under Apache license option.

But we may need to discuss that with lawyers.

 

Ray, you may need to upgrade your contributor-finding shell pipeline

to cover all files I added the new license into.

 

Vratko.

 

[0] https://gerrit.fd.io/r/c/vpp/+/30998

 


Vratko Polak -X (vrpolak - PANTHEON TECHNOLOGIES at Cisco)
 

> we use scapy to create a separate pcap file

 

We also use Scapy data structures

to parse packets received from VPP

to verify they contain the correct values.

Example: [6].

 

> we need to use GPLv3 (which is compatible with both).

 

Only for programs such as VPP test framework

which link with both GPL (Scapy) and Apache (VPP PAPI).

But that includes also programs that depend

on Apache-licensed library only by mistake [7].

 

Vratko.

 

[6] https://github.com/FDio/vpp/blob/e988726cbfb1b1f618c4034aa16e41364f9c48a2/test/test_ip4.py#L160-L182

[7] https://github.com/FDio/csit/blob/624e580159dc056035d7e962582e86a000f8c3d6/GPL/traffic_scripts/send_ip_check_headers.py#L35

 

From: Paul Vinciguerra <pvinci@...>
Sent: Thursday, 2021-February-04 17:05
To: Vratko Polak -X (vrpolak - PANTHEON TECH SRO at Cisco) <vrpolak@...>
Cc: tsc@...; Kinsella, Ray <ray.kinsella@...>; vpp-dev@...
Subject: Re: [vpp-dev] Scapy license in VPP

 

This is good information.

 

Can we take a step back and approach this from a different perspective?  Why do we actually need scapy?  

The general process is that we use scapy to create a separate pcap file that is fed to the vpp packet generator.  

If we instead create named pcap files that we pre-package with the tests, we would 1) resolve this issue 2) speed up the actual execution of the tests.

 

The only usage of scapy outside of the unit tests proper that comes to mind is within test/utils.py

 

Paul

 

On Thu, Feb 4, 2021 at 9:54 AM Vratko Polak -X (vrpolak - PANTHEON TECH SRO at Cisco) <vrpolak@...> wrote:

Few quick comments and links.

 

Turns out GPLv2-or-later is not by itself compatible with Apache [2],

we need to use GPLv3 (which is compatible with both).

 

The questions on dynamic linking are still open [3] [4] [5].

 

We probably need to distinguish several Programs

available from VPP repository.

VPP PAPI (library) is a separate distribution

from VPP test framework.

 

When a user starts VPP test framework,

linking with VPP PAPI in runtime,

therefore creating a derived work.

GPLv3 would apply to that Program,

but it does not mean we need to mention GPLv3

in VPP PAPI license headers.

 

This only works because VPP PAPI does not share

any code nor data structures specific to VPP test framework.

Modules which link with Scapy do share data structures,

so the "derived work" nature is apparent already in repo.

 

Vratko.

 

[2] https://www.gnu.org/licenses/license-list.html#apache2

[3] https://tech.popdata.org/the-gpl-license-and-linking-still-unclear-after-30-years/

[4] https://lwn.net/Articles/548216/

[5] https://www.kilpatricktownsend.com/-/media/2019/IP-Desk-Reference-2015/A-Practical-Guide-to-Open-Source-Software.ashx?la=en&hash=895293E77B462CF85E4D3E80AF8DC83143D0C165

 

From: vpp-dev@... <vpp-dev@...> On Behalf Of Vratko Polak -X (vrpolak - PANTHEON TECHNOLOGIES at Cisco) via lists.fd.io
Sent: Friday, 2021-January-29 18:10
To: Paul Vinciguerra <pvinci@...>
Cc: tsc@...; Kinsella, Ray <ray.kinsella@...>; vpp-dev@...
Subject: Re: [vpp-dev] Scapy license in VPP

 

> Why do you say that vpp_papi need to be dual licensed?

 

I think e-mail reply would be long,

and I will need to address comments anyway,

so I respond via a Gerrit change [1].

 

Vratko.

 

[1] https://gerrit.fd.io/r/c/vpp/+/31025

 

From: Paul Vinciguerra <pvinci@...>
Sent: Friday, 2021-January-29 15:29
To: Vratko Polak -X (vrpolak - PANTHEON TECH SRO at Cisco) <vrpolak@...>
Cc: tsc@...; Kinsella, Ray <ray.kinsella@...>; vpp-dev@...
Subject: Re: [vpp-dev] Scapy license in VPP

 

Why do you say that vpp_papi need to be dual licensed?

 

On Thu, Jan 28, 2021 at 12:43 PM Vratko Polak -X (vrpolak - PANTHEON TECHNOLOGIES at Cisco) via lists.fd.io <vrpolak=cisco.com@...> wrote:

First draft created [0] for the change that will switch

licenses for Python files used together with Scapy.

 

For some files, I was not sure whether they are used together with Scapy.

One big detail is that vpp_papi needs to have dual license,

as test framework integrates with it (and with scapy).

If I understand the licensing logic correctly,

CSIT tests can still choose to use vpp_papi under Apache license option.

But we may need to discuss that with lawyers.

 

Ray, you may need to upgrade your contributor-finding shell pipeline

to cover all files I added the new license into.

 

Vratko.

 

[0] https://gerrit.fd.io/r/c/vpp/+/30998