aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2020-05-04 13:05:26 +0200
committerVratko Polak <vrpolak@cisco.com>2020-05-06 14:03:21 +0000
commit79f5ba9bf7656972dd988508eff9465562dde42c (patch)
treea84714e81d65bfc4f0454fa8e327d4129f58ac79
parent16ef90a2415aa3b65341fdb6517cf58721bfff7a (diff)
Separate files needing GPL license
+ Keep apache license for now, until this is completed: https://wiki.fd.io/view/TSC/Relicensing_Procedure + Add utilities for switching license comment blocks. - They do not preserve attributes, so executable flag is lost. + Move the affected files to GPL/. + Update paths so files are executed from the new location. + Change the way scripts are started to do not require executable flag. + Employ OptionString when constructing longer command lines. + Move also PacketVerifier.py and TrafficScriptArg.py as they are linked with traffic scripts. + That means the two files are outside "resources" package tree now. + Added __init__.py files so relative imports work in new package tree. + Start traffic scripts as python modules to allow relative imports. + Once again needed because they are outside the default PYTHONPATH. Change-Id: Ieb135629e890adbaf5b79497570f3be25b746f9f Signed-off-by: Vratko Polak <vrpolak@cisco.com>
-rw-r--r--GPL/README.txt11
-rw-r--r--[-rwxr-xr-x]GPL/tools/trex/trex_server_info.py (renamed from resources/tools/trex/trex_server_info.py)2
-rw-r--r--[-rwxr-xr-x]GPL/tools/trex/trex_stateless_profile.py (renamed from resources/tools/trex/trex_stateless_profile.py)0
-rw-r--r--[-rwxr-xr-x]GPL/tools/trex/trex_stateless_stop.py (renamed from resources/tools/trex/trex_stateless_stop.py)0
-rw-r--r--GPL/traffic_profiles/trex/profile_trex_stateless_base_class.py (renamed from resources/traffic_profiles/trex/profile_trex_stateless_base_class.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-dot1qip4asym-ip4src254.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-dot1qip4asym-ip4src254.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-dot1qip6asym-ip6src253.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-dot1qip6asym-ip6src253.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd10000.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd10000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd100000.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd100000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd1000000.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd1000000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst10000.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst10000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst100000.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst100000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst1000000.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst1000000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src253.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src253.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src254.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src254.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc500kdst500k.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc500kdst500k.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc50kdst50k.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc50kdst50k.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc5kdst5k.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc5kdst5k.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-1000u15p.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-1000u15p.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-10u1000p-conc.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-10u1000p-conc.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-1u1p.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-1u1p.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-lb.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-lb.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst10000.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst10000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst100000.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst100000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst1000000.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst1000000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6src253.py (renamed from resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6src253.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c1n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c1n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c2n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c2n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c10n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c10n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c1n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c1n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c2n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c2n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c4n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c4n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c6n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c6n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c8n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c8n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c10n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c10n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c1n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c1n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c2n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c2n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c4n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c4n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c6n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c6n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c8n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c8n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c1n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c1n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c2n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c2n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c4n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c4n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c6n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c6n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c1n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c1n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c2n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c2n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c4n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c4n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c1n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c1n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c2n.py (renamed from resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c2n.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan100ip4src254ip4dst254.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan100ip4src254ip4dst254.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan10ip4src254ip4dst254.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan10ip4src254ip4dst254.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1ip4src254ip4dst254.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1ip4src254ip4dst254.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1kip4src254ip4dst254.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1kip4src254ip4dst254.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-1cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-1cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-2cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-2cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-4cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-4cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-8cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-8cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-1cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-1cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-2cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-2cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-4cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-4cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-8cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-8cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100000.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000000.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-1cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-1cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-2cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-2cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-4cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-4cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-8cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-8cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253_l3fwd.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253_l3fwd.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-1cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-1cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-2cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-2cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-4cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-4cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-1cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-1cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-2cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-2cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-4cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-4cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-8cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-8cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-1cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-1cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-2cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-2cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-4cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-4cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-8cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-8cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-1cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-1cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-2cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-2cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-4cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-4cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-8cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-8cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-1cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-1cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-2cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-2cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-4cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-4cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-8cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-8cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-1cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-1cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-2cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-2cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-4cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-4cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-8cnf.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-8cnf.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src253.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src253.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src254.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src254.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100ip4src100.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100ip4src100.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100kip4src100k.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100kip4src100k.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc10kip4src10k.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc10kip4src10k.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc500kdst500k.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc500kdst500k.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc50kdst50k.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc50kdst50k.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc5kdst5k.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc5kdst5k.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-1000u15p.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-1000u15p.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u1000p-conc.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u1000p-conc.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u15p.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u15p.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u1000p-conc.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u1000p-conc.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u10p-conc.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u10p-conc.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u15p.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u15p.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u15p.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u15p.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u1p.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u1p.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-2000u15p.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-2000u15p.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-4000u15p.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-4000u15p.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst10000.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst10000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst100000.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst100000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst1000000.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst1000000.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6src253.py (renamed from resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6src253.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254-bvi.py (renamed from resources/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254-bvi.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254.py (renamed from resources/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src10udpsrcrnd.py (renamed from resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src10udpsrcrnd.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src1udpsrcrnd.py (renamed from resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src1udpsrcrnd.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src2udpsrcrnd.py (renamed from resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src2udpsrcrnd.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src4udpsrcrnd.py (renamed from resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src4udpsrcrnd.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src6udpsrcrnd.py (renamed from resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src6udpsrcrnd.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src8udpsrcrnd.py (renamed from resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src8udpsrcrnd.py)0
-rw-r--r--GPL/traffic_profiles/trex/trex-sl-ethip4vxlan-ip4src1udpsrcrnd.py (renamed from resources/traffic_profiles/trex/trex-sl-ethip4vxlan-ip4src1udpsrcrnd.py)0
-rw-r--r--GPL/traffic_scripts/PacketVerifier.py (renamed from resources/libraries/python/PacketVerifier.py)2
-rw-r--r--GPL/traffic_scripts/TrafficScriptArg.py (renamed from resources/libraries/python/TrafficScriptArg.py)2
-rw-r--r--GPL/traffic_scripts/__init__.py16
-rw-r--r--[-rwxr-xr-x]GPL/traffic_scripts/ipsec_interface.py (renamed from resources/traffic_scripts/ipsec_interface.py)4
-rw-r--r--[-rwxr-xr-x]GPL/traffic_scripts/ipsec_policy.py (renamed from resources/traffic_scripts/ipsec_policy.py)4
-rw-r--r--GPL/traffic_scripts/lisp/__init__.py16
-rw-r--r--[-rwxr-xr-x]GPL/traffic_scripts/lisp/lisp_check.py (renamed from resources/traffic_scripts/lisp/lisp_check.py)6
-rw-r--r--[-rwxr-xr-x]GPL/traffic_scripts/lisp/lispgpe_check.py (renamed from resources/traffic_scripts/lisp/lispgpe_check.py)6
-rw-r--r--[-rwxr-xr-x]GPL/traffic_scripts/policer.py (renamed from resources/traffic_scripts/policer.py)6
-rw-r--r--[-rwxr-xr-x]GPL/traffic_scripts/send_icmp_wait_for_reply.py (renamed from resources/traffic_scripts/send_icmp_wait_for_reply.py)6
-rw-r--r--[-rwxr-xr-x]GPL/traffic_scripts/send_ip_check_headers.py (renamed from resources/traffic_scripts/send_ip_check_headers.py)6
-rw-r--r--[-rwxr-xr-x]GPL/traffic_scripts/send_vxlan_check_vxlan.py (renamed from resources/traffic_scripts/send_vxlan_check_vxlan.py)8
-rw-r--r--[-rwxr-xr-x]GPL/traffic_scripts/srv6_encap.py (renamed from resources/traffic_scripts/srv6_encap.py)4
-rw-r--r--GPL/traffic_scripts/vxlan.py32
-rw-r--r--resources/libraries/python/TrafficGenerator.py70
-rw-r--r--resources/libraries/python/TrafficScriptExecutor.py6
-rw-r--r--resources/tools/block_replacer/apache2gpl.sh27
-rw-r--r--resources/tools/block_replacer/apache_block.txt11
-rw-r--r--resources/tools/block_replacer/gpl2apache.sh27
-rw-r--r--resources/tools/block_replacer/gpl_block.txt13
-rw-r--r--resources/tools/block_replacer/replace.py126
-rw-r--r--resources/traffic_scripts/vxlan.py19
156 files changed, 346 insertions, 84 deletions
diff --git a/GPL/README.txt b/GPL/README.txt
new file mode 100644
index 0000000000..36de320ab5
--- /dev/null
+++ b/GPL/README.txt
@@ -0,0 +1,11 @@
+This directory (and its subdirectories)
+contain files that have to be distributed under GPL license,
+mostly because of linking with scapy.
+
+When migrating more files here, make sure to migrate
+also everything linking with them.
+
+Currently the license listed is still Apache 2.0,
+we are waiting for sign-offs as described in
+https://wiki.fd.io/view/TSC/Relicensing_Procedure
+before we switch the licenses.
diff --git a/resources/tools/trex/trex_server_info.py b/GPL/tools/trex/trex_server_info.py
index b34709b206..8423801285 100755..100644
--- a/resources/tools/trex/trex_server_info.py
+++ b/GPL/tools/trex/trex_server_info.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
diff --git a/resources/tools/trex/trex_stateless_profile.py b/GPL/tools/trex/trex_stateless_profile.py
index a0de5c0cd3..a0de5c0cd3 100755..100644
--- a/resources/tools/trex/trex_stateless_profile.py
+++ b/GPL/tools/trex/trex_stateless_profile.py
diff --git a/resources/tools/trex/trex_stateless_stop.py b/GPL/tools/trex/trex_stateless_stop.py
index 5e8721d28c..5e8721d28c 100755..100644
--- a/resources/tools/trex/trex_stateless_stop.py
+++ b/GPL/tools/trex/trex_stateless_stop.py
diff --git a/resources/traffic_profiles/trex/profile_trex_stateless_base_class.py b/GPL/traffic_profiles/trex/profile_trex_stateless_base_class.py
index a3736796eb..a3736796eb 100644
--- a/resources/traffic_profiles/trex/profile_trex_stateless_base_class.py
+++ b/GPL/traffic_profiles/trex/profile_trex_stateless_base_class.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-dot1qip4asym-ip4src254.py b/GPL/traffic_profiles/trex/trex-sl-2n-dot1qip4asym-ip4src254.py
index ae411e233b..ae411e233b 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-dot1qip4asym-ip4src254.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-dot1qip4asym-ip4src254.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-dot1qip6asym-ip6src253.py b/GPL/traffic_profiles/trex/trex-sl-2n-dot1qip6asym-ip6src253.py
index f2e9e81920..f2e9e81920 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-dot1qip6asym-ip6src253.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-dot1qip6asym-ip6src253.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd10000.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd10000.py
index 16627f0884..16627f0884 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd10000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd10000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd100000.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd100000.py
index 751528d10c..751528d10c 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd100000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd100000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd1000000.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd1000000.py
index 58ab03516c..58ab03516c 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd1000000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst-rnd1000000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst10000.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst10000.py
index e9d5fb15f6..e9d5fb15f6 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst10000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst10000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst100000.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst100000.py
index 5977d36b5b..5977d36b5b 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst100000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst100000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst1000000.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst1000000.py
index 8b63b82e4f..8b63b82e4f 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst1000000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4dst1000000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src253.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src253.py
index 883883ad18..883883ad18 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src253.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src253.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src254.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src254.py
index fc6167d126..fc6167d126 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src254.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-ip4src254.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc500kdst500k.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc500kdst500k.py
index 9c55482078..9c55482078 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc500kdst500k.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc500kdst500k.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc50kdst50k.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc50kdst50k.py
index 42e3db6a6f..42e3db6a6f 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc50kdst50k.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc50kdst50k.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc5kdst5k.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc5kdst5k.py
index 29df3373d3..29df3373d3 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc5kdst5k.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4-macsrc5kdst5k.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-1000u15p.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-1000u15p.py
index 64fe1a705f..64fe1a705f 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-1000u15p.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-1000u15p.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-10u1000p-conc.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-10u1000p-conc.py
index 77f05f8af3..77f05f8af3 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-10u1000p-conc.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-10u1000p-conc.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-1u1p.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-1u1p.py
index a892ec8822..a892ec8822 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-1u1p.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-1u1p.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-lb.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-lb.py
index df05cbff17..df05cbff17 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip4udp-lb.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip4udp-lb.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst10000.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst10000.py
index f1b90350fb..f1b90350fb 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst10000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst10000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst100000.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst100000.py
index 87e76726b2..87e76726b2 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst100000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst100000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst1000000.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst1000000.py
index 9214b6239d..9214b6239d 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst1000000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6dst1000000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6src253.py b/GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6src253.py
index 7ac5f75bed..7ac5f75bed 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n-ethip6-ip6src253.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n-ethip6-ip6src253.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c1n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c1n.py
index 3707ec6b9a..3707ec6b9a 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c1n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c1n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c2n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c2n.py
index 52396c3723..52396c3723 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c2n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-10c2n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c10n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c10n.py
index 8d29f86b49..8d29f86b49 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c10n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c10n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c1n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c1n.py
index f50e2e6c1d..f50e2e6c1d 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c1n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c1n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c2n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c2n.py
index 1923f72504..1923f72504 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c2n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c2n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c4n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c4n.py
index a1e55c5253..a1e55c5253 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c4n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c4n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c6n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c6n.py
index ffc8b428ef..ffc8b428ef 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c6n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c6n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c8n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c8n.py
index 952859b31d..952859b31d 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c8n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-1c8n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c10n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c10n.py
index 84440af422..84440af422 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c10n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c10n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c1n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c1n.py
index 91941769a3..91941769a3 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c1n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c1n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c2n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c2n.py
index d66271f076..d66271f076 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c2n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c2n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c4n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c4n.py
index 7eadae361b..7eadae361b 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c4n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c4n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c6n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c6n.py
index 3725f75b3e..3725f75b3e 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c6n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c6n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c8n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c8n.py
index 024cbc34f3..024cbc34f3 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c8n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-2c8n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c1n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c1n.py
index e8c62b9c41..e8c62b9c41 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c1n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c1n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c2n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c2n.py
index a6fbe9ea79..a6fbe9ea79 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c2n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c2n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c4n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c4n.py
index f1477419c3..f1477419c3 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c4n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c4n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c6n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c6n.py
index 7e2b79fdac..7e2b79fdac 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c6n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-4c6n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c1n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c1n.py
index dc8616c6fe..dc8616c6fe 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c1n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c1n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c2n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c2n.py
index 53a83db70b..53a83db70b 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c2n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c2n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c4n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c4n.py
index ac697e60ec..ac697e60ec 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c4n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-6c4n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c1n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c1n.py
index 587dfc3406..587dfc3406 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c1n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c1n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c2n.py b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c2n.py
index 9123a752b2..9123a752b2 100644
--- a/resources/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c2n.py
+++ b/GPL/traffic_profiles/trex/trex-sl-2n3n-ethip4-ip4src254-8c2n.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan100ip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan100ip4src254ip4dst254.py
index b414bd1c7a..b414bd1c7a 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan100ip4src254ip4dst254.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan100ip4src254ip4dst254.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan10ip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan10ip4src254ip4dst254.py
index d878e2d726..d878e2d726 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan10ip4src254ip4dst254.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan10ip4src254ip4dst254.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1ip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1ip4src254ip4dst254.py
index c8f279bdb3..c8f279bdb3 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1ip4src254ip4dst254.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1ip4src254ip4dst254.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1kip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1kip4src254ip4dst254.py
index 02decf4284..02decf4284 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1kip4src254ip4dst254.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-dot1qip4-vlan1kip4src254ip4dst254.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1.py
index 0d36b7358f..0d36b7358f 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100.py
index 222b127914..222b127914 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-1cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-1cnf.py
index 1397ae4828..1397ae4828 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-1cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-1cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-2cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-2cnf.py
index b7f316092a..b7f316092a 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-2cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-2cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-4cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-4cnf.py
index a64e4d5a5e..a64e4d5a5e 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-4cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-4cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-8cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-8cnf.py
index a58df6e87b..a58df6e87b 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-8cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000-8cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000.py
index 8d9ec21a25..8d9ec21a25 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-1cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-1cnf.py
index 53e68de2b9..53e68de2b9 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-1cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-1cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-2cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-2cnf.py
index ca3f41a6fb..ca3f41a6fb 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-2cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-2cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-4cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-4cnf.py
index df7572853f..df7572853f 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-4cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-4cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-8cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-8cnf.py
index 1dbd3feb1a..1dbd3feb1a 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-8cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000-8cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000.py
index 9f55ff71de..9f55ff71de 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst10000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100000.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100000.py
index ae36cf9995..ae36cf9995 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst100000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000000.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000000.py
index 8f6e5a0836..8f6e5a0836 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst1000000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-1cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-1cnf.py
index f6f6fada5a..f6f6fada5a 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-1cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-1cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-2cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-2cnf.py
index 15cb461624..15cb461624 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-2cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-2cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-4cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-4cnf.py
index 62eb1bee78..62eb1bee78 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-4cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-4cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-8cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-8cnf.py
index b6eef29366..b6eef29366 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-8cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000-8cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000.py
index 877e6cdc66..877e6cdc66 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst20000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253.py
index e1e6a89af7..e1e6a89af7 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253_l3fwd.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253_l3fwd.py
index ed4f5b5bd6..ed4f5b5bd6 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253_l3fwd.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst253_l3fwd.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-1cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-1cnf.py
index b937d02741..b937d02741 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-1cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-1cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-2cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-2cnf.py
index b95649a94d..b95649a94d 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-2cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-2cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-4cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-4cnf.py
index fed0d7ef3c..fed0d7ef3c 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-4cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4-4cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4.py
index 9f14d4c929..9f14d4c929 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst4.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-1cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-1cnf.py
index d321d0ffb2..d321d0ffb2 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-1cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-1cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-2cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-2cnf.py
index acc565e776..acc565e776 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-2cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-2cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-4cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-4cnf.py
index 629100cb83..629100cb83 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-4cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-4cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-8cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-8cnf.py
index b51c98d7aa..b51c98d7aa 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-8cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40-8cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40.py
index 5dbc5fc803..5dbc5fc803 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-1cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-1cnf.py
index 1a004b055f..1a004b055f 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-1cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-1cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-2cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-2cnf.py
index b09e79d7dc..b09e79d7dc 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-2cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-2cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-4cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-4cnf.py
index 7081525771..7081525771 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-4cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-4cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-8cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-8cnf.py
index c5b1d52e04..c5b1d52e04 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-8cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400-8cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400.py
index 44db3ec81c..44db3ec81c 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst400.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-1cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-1cnf.py
index 038b986b65..038b986b65 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-1cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-1cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-2cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-2cnf.py
index 5933b33d20..5933b33d20 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-2cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-2cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-4cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-4cnf.py
index 851cd7c870..851cd7c870 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-4cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-4cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-8cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-8cnf.py
index 40d57f09dd..40d57f09dd 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-8cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000-8cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000.py
index 570a236fd6..570a236fd6 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst40000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-1cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-1cnf.py
index fb4c61b030..fb4c61b030 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-1cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-1cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-2cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-2cnf.py
index ca13c337cb..ca13c337cb 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-2cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-2cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-4cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-4cnf.py
index 1ffd8c8ba5..1ffd8c8ba5 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-4cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-4cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-8cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-8cnf.py
index 26efc1a438..26efc1a438 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-8cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000-8cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000.py
index 95d8380a22..95d8380a22 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst5000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-1cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-1cnf.py
index 251758ddae..251758ddae 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-1cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-1cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-2cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-2cnf.py
index acebf6d06d..acebf6d06d 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-2cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-2cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-4cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-4cnf.py
index 3fe3caf128..3fe3caf128 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-4cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-4cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-8cnf.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-8cnf.py
index 84bfb89f0b..84bfb89f0b 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-8cnf.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000-8cnf.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000.py
index 126302d545..126302d545 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4dst60000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src253.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src253.py
index 883883ad18..883883ad18 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src253.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src253.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src254.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src254.py
index fc6167d126..fc6167d126 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src254.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-ip4src254.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100ip4src100.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100ip4src100.py
index b94c56ad6c..b94c56ad6c 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100ip4src100.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100ip4src100.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100kip4src100k.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100kip4src100k.py
index 52eb841ab0..52eb841ab0 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100kip4src100k.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc100kip4src100k.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc10kip4src10k.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc10kip4src10k.py
index 8e959c829d..8e959c829d 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc10kip4src10k.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc10kip4src10k.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc500kdst500k.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc500kdst500k.py
index da4348f2a0..da4348f2a0 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc500kdst500k.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc500kdst500k.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc50kdst50k.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc50kdst50k.py
index 6cf066367b..6cf066367b 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc50kdst50k.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc50kdst50k.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc5kdst5k.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc5kdst5k.py
index 29df3373d3..29df3373d3 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc5kdst5k.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4-macsrc5kdst5k.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-1000u15p.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-1000u15p.py
index b7b364f195..b7b364f195 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-1000u15p.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-1000u15p.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u1000p-conc.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u1000p-conc.py
index b93cd645ae..b93cd645ae 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u1000p-conc.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u1000p-conc.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u15p.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u15p.py
index 31cdc5e628..31cdc5e628 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u15p.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-100u15p.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u1000p-conc.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u1000p-conc.py
index 9032a8c2f5..9032a8c2f5 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u1000p-conc.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u1000p-conc.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u10p-conc.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u10p-conc.py
index 29433b3d27..29433b3d27 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u10p-conc.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u10p-conc.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u15p.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u15p.py
index 57c5b2dcbc..57c5b2dcbc 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u15p.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-10u15p.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u15p.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u15p.py
index df9a1642a9..df9a1642a9 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u15p.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u15p.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u1p.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u1p.py
index a892ec8822..a892ec8822 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u1p.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-1u1p.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-2000u15p.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-2000u15p.py
index c96f76aaee..c96f76aaee 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-2000u15p.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-2000u15p.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-4000u15p.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-4000u15p.py
index c1b3d5ba59..c1b3d5ba59 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip4udp-4000u15p.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip4udp-4000u15p.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst10000.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst10000.py
index f1b90350fb..f1b90350fb 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst10000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst10000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst100000.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst100000.py
index 87e76726b2..87e76726b2 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst100000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst100000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst1000000.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst1000000.py
index c6870d89fa..c6870d89fa 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst1000000.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6dst1000000.py
diff --git a/resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6src253.py b/GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6src253.py
index fbe8b94ab3..fbe8b94ab3 100644
--- a/resources/traffic_profiles/trex/trex-sl-3n-ethip6-ip6src253.py
+++ b/GPL/traffic_profiles/trex/trex-sl-3n-ethip6-ip6src253.py
diff --git a/resources/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254-bvi.py b/GPL/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254-bvi.py
index 28ec10bf8b..28ec10bf8b 100644
--- a/resources/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254-bvi.py
+++ b/GPL/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254-bvi.py
diff --git a/resources/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254.py
index 6ce351968c..6ce351968c 100644
--- a/resources/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254.py
+++ b/GPL/traffic_profiles/trex/trex-sl-dot1qip4-vlan1ip4src254ip4dst254.py
diff --git a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src10udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src10udpsrcrnd.py
index 32ca072154..32ca072154 100644
--- a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src10udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src10udpsrcrnd.py
diff --git a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src1udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src1udpsrcrnd.py
index 1e78cd3cae..1e78cd3cae 100644
--- a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src1udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src1udpsrcrnd.py
diff --git a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src2udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src2udpsrcrnd.py
index d195bc5b61..d195bc5b61 100644
--- a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src2udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src2udpsrcrnd.py
diff --git a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src4udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src4udpsrcrnd.py
index 8a7bc08b1b..8a7bc08b1b 100644
--- a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src4udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src4udpsrcrnd.py
diff --git a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src6udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src6udpsrcrnd.py
index fe46844571..fe46844571 100644
--- a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src6udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src6udpsrcrnd.py
diff --git a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src8udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src8udpsrcrnd.py
index cf34818781..cf34818781 100644
--- a/resources/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src8udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-sl-dot1qip4vxlan-ip4src8udpsrcrnd.py
diff --git a/resources/traffic_profiles/trex/trex-sl-ethip4vxlan-ip4src1udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-sl-ethip4vxlan-ip4src1udpsrcrnd.py
index cd1a0a690c..cd1a0a690c 100644
--- a/resources/traffic_profiles/trex/trex-sl-ethip4vxlan-ip4src1udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-sl-ethip4vxlan-ip4src1udpsrcrnd.py
diff --git a/resources/libraries/python/PacketVerifier.py b/GPL/traffic_scripts/PacketVerifier.py
index fb2337e49d..20e9af603b 100644
--- a/resources/libraries/python/PacketVerifier.py
+++ b/GPL/traffic_scripts/PacketVerifier.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
diff --git a/resources/libraries/python/TrafficScriptArg.py b/GPL/traffic_scripts/TrafficScriptArg.py
index 247eccbc2f..b2f7055412 100644
--- a/resources/libraries/python/TrafficScriptArg.py
+++ b/GPL/traffic_scripts/TrafficScriptArg.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
diff --git a/GPL/traffic_scripts/__init__.py b/GPL/traffic_scripts/__init__.py
new file mode 100644
index 0000000000..a946304019
--- /dev/null
+++ b/GPL/traffic_scripts/__init__.py
@@ -0,0 +1,16 @@
+# Copyright (c) 2020 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""
+__init__ file for directory traffic_scripts
+"""
diff --git a/resources/traffic_scripts/ipsec_interface.py b/GPL/traffic_scripts/ipsec_interface.py
index d1e07471b4..4b7d758be5 100755..100644
--- a/resources/traffic_scripts/ipsec_interface.py
+++ b/GPL/traffic_scripts/ipsec_interface.py
@@ -24,8 +24,8 @@ from scapy.layers.ipsec import SecurityAssociation, ESP
from scapy.layers.l2 import Ether
from scapy.packet import Raw
-from resources.libraries.python.PacketVerifier import RxQueue, TxQueue
-from resources.libraries.python.TrafficScriptArg import TrafficScriptArg
+from .PacketVerifier import RxQueue, TxQueue
+from .TrafficScriptArg import TrafficScriptArg
def check_ipsec(
diff --git a/resources/traffic_scripts/ipsec_policy.py b/GPL/traffic_scripts/ipsec_policy.py
index 0dbf2af581..9e168ee938 100755..100644
--- a/resources/traffic_scripts/ipsec_policy.py
+++ b/GPL/traffic_scripts/ipsec_policy.py
@@ -24,8 +24,8 @@ from scapy.layers.ipsec import SecurityAssociation, ESP
from scapy.layers.l2 import Ether
from scapy.packet import Raw
-from resources.libraries.python.PacketVerifier import RxQueue, TxQueue
-from resources.libraries.python.TrafficScriptArg import TrafficScriptArg
+from .PacketVerifier import RxQueue, TxQueue
+from .TrafficScriptArg import TrafficScriptArg
def check_ipsec(pkt_recv, ip_layer, dst_tun, src_ip, dst_ip, sa_in):
diff --git a/GPL/traffic_scripts/lisp/__init__.py b/GPL/traffic_scripts/lisp/__init__.py
new file mode 100644
index 0000000000..eef4a31bb0
--- /dev/null
+++ b/GPL/traffic_scripts/lisp/__init__.py
@@ -0,0 +1,16 @@
+# Copyright (c) 2020 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""
+__init__ file for directory lisp
+"""
diff --git a/resources/traffic_scripts/lisp/lisp_check.py b/GPL/traffic_scripts/lisp/lisp_check.py
index ebd769fa9d..1bdafb799a 100755..100644
--- a/resources/traffic_scripts/lisp/lisp_check.py
+++ b/GPL/traffic_scripts/lisp/lisp_check.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -28,8 +28,8 @@ from scapy.layers.inet6 import IPv6
from scapy.layers.l2 import Ether
from scapy.packet import Raw
-from resources.libraries.python.PacketVerifier import RxQueue, TxQueue
-from resources.libraries.python.TrafficScriptArg import TrafficScriptArg
+from ..PacketVerifier import RxQueue, TxQueue
+from ..TrafficScriptArg import TrafficScriptArg
class LispHeader(Packet):
diff --git a/resources/traffic_scripts/lisp/lispgpe_check.py b/GPL/traffic_scripts/lisp/lispgpe_check.py
index 50857c4fe8..27a83f5701 100755..100644
--- a/resources/traffic_scripts/lisp/lispgpe_check.py
+++ b/GPL/traffic_scripts/lisp/lispgpe_check.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -29,8 +29,8 @@ from scapy.layers.inet6 import IPv6
from scapy.layers.l2 import Ether
from scapy.packet import Raw
-from resources.libraries.python.PacketVerifier import RxQueue, TxQueue
-from resources.libraries.python.TrafficScriptArg import TrafficScriptArg
+from ..PacketVerifier import RxQueue, TxQueue
+from ..TrafficScriptArg import TrafficScriptArg
class LispGPEHeader(Packet):
diff --git a/resources/traffic_scripts/policer.py b/GPL/traffic_scripts/policer.py
index 97cad612ac..db90bb21f3 100755..100644
--- a/resources/traffic_scripts/policer.py
+++ b/GPL/traffic_scripts/policer.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -24,8 +24,8 @@ from scapy.layers.inet import IP, TCP
from scapy.layers.inet6 import IPv6, ICMPv6ND_NS
from scapy.packet import Raw
-from resources.libraries.python.TrafficScriptArg import TrafficScriptArg
-from resources.libraries.python.PacketVerifier import RxQueue, TxQueue
+from .TrafficScriptArg import TrafficScriptArg
+from .PacketVerifier import RxQueue, TxQueue
def check_ipv4(pkt_recv, dscp):
diff --git a/resources/traffic_scripts/send_icmp_wait_for_reply.py b/GPL/traffic_scripts/send_icmp_wait_for_reply.py
index 2c79ae7136..78554634af 100755..100644
--- a/resources/traffic_scripts/send_icmp_wait_for_reply.py
+++ b/GPL/traffic_scripts/send_icmp_wait_for_reply.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2016 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -24,8 +24,8 @@ from scapy.layers.inet6 import IPv6, ICMPv6EchoRequest, ICMPv6EchoReply,\
from scapy.layers.l2 import Ether
from scapy.packet import Raw
-from resources.libraries.python.PacketVerifier import RxQueue, TxQueue
-from resources.libraries.python.TrafficScriptArg import TrafficScriptArg
+from .PacketVerifier import RxQueue, TxQueue
+from .TrafficScriptArg import TrafficScriptArg
def valid_ipv4(ip):
diff --git a/resources/traffic_scripts/send_ip_check_headers.py b/GPL/traffic_scripts/send_ip_check_headers.py
index f5a55553cf..ff43563025 100755..100644
--- a/resources/traffic_scripts/send_ip_check_headers.py
+++ b/GPL/traffic_scripts/send_ip_check_headers.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -28,8 +28,8 @@ from scapy.layers.inet6 import IPv6, ICMPv6ND_NS
from scapy.layers.l2 import Ether, Dot1Q
from scapy.packet import Raw
-from resources.libraries.python.PacketVerifier import RxQueue, TxQueue
-from resources.libraries.python.TrafficScriptArg import TrafficScriptArg
+from .PacketVerifier import RxQueue, TxQueue
+from .TrafficScriptArg import TrafficScriptArg
def valid_ipv4(ip):
diff --git a/resources/traffic_scripts/send_vxlan_check_vxlan.py b/GPL/traffic_scripts/send_vxlan_check_vxlan.py
index 162703d60c..0b1da81f18 100755..100644
--- a/resources/traffic_scripts/send_vxlan_check_vxlan.py
+++ b/GPL/traffic_scripts/send_vxlan_check_vxlan.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -23,9 +23,9 @@ from scapy.layers.inet import IP, UDP
from scapy.layers.l2 import Ether
from scapy.packet import Raw
-from resources.libraries.python.PacketVerifier import RxQueue, TxQueue
-from resources.libraries.python.TrafficScriptArg import TrafficScriptArg
-from resources.traffic_scripts import vxlan
+from .PacketVerifier import RxQueue, TxQueue
+from .TrafficScriptArg import TrafficScriptArg
+from . import vxlan
def main():
diff --git a/resources/traffic_scripts/srv6_encap.py b/GPL/traffic_scripts/srv6_encap.py
index 506a245576..9db9538659 100755..100644
--- a/resources/traffic_scripts/srv6_encap.py
+++ b/GPL/traffic_scripts/srv6_encap.py
@@ -22,8 +22,8 @@ from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, IPv6ExtHdrSegmentRouting,\
from scapy.layers.l2 import Ether
from scapy.packet import Raw
-from resources.libraries.python.PacketVerifier import RxQueue, TxQueue
-from resources.libraries.python.TrafficScriptArg import TrafficScriptArg
+from .PacketVerifier import RxQueue, TxQueue
+from .TrafficScriptArg import TrafficScriptArg
def check_srv6(
diff --git a/GPL/traffic_scripts/vxlan.py b/GPL/traffic_scripts/vxlan.py
new file mode 100644
index 0000000000..b39b419acc
--- /dev/null
+++ b/GPL/traffic_scripts/vxlan.py
@@ -0,0 +1,32 @@
+# Copyright (c) 2020 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from scapy.fields import BitField, XByteField, X3BytesField
+from scapy.layers.inet import UDP
+from scapy.layers.l2 import Ether
+from scapy.packet import Packet, bind_layers
+
+
+class VXLAN(Packet):
+ name = u"VXLAN"
+ fields_desc = [
+ BitField(u"flags", 0x08000000, 32),
+ X3BytesField(u"vni", 0),
+ XByteField(u"reserved", 0x00)
+ ]
+
+ def mysummary(self):
+ return self.sprintf(f"VXLAN (vni={VXLAN.vni})")
+
+bind_layers(UDP, VXLAN, dport=4789)
+bind_layers(VXLAN, Ether)
diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py
index 539ced584a..c63dc2d504 100644
--- a/resources/libraries/python/TrafficGenerator.py
+++ b/resources/libraries/python/TrafficGenerator.py
@@ -75,7 +75,7 @@ class TGDropRateSearchImpl(DropRateSearch):
:param loss_acceptance: Permitted drop ratio or frames count.
:param loss_acceptance_type: Type of permitted loss.
:param traffic_profile: Module name as a traffic profile identifier.
- See resources/traffic_profiles/trex for implemented modules.
+ See GPL/traffic_profiles/trex for implemented modules.
:param skip_warmup: Start TRex without warmup traffic if true.
:type rate: float
:type frame_size: str
@@ -406,12 +406,13 @@ class TrafficGenerator(AbstractMeasurer):
)
raise RuntimeError(u"Start TRex failed!")
- # Test if TRex starts successfully.
- cmd = f"sh -c \"{Constants.REMOTE_FW_DIR}/resources/tools/" \
- f"trex/trex_server_info.py\""
+ # Test if TRex starts successfuly.
+ command_line = OptionString().add(u"python3")
+ dirname = f"{Constants.REMOTE_FW_DIR}/GPL/tools/trex"
+ command_line.add(f"'{dirname}/trex_server_info.py'")
try:
exec_cmd_no_error(
- tg_node, cmd, sudo=True,
+ tg_node, command_line, sudo=True,
message=u"Test TRex failed!", retries=20
)
except RuntimeError:
@@ -488,16 +489,16 @@ class TrafficGenerator(AbstractMeasurer):
:raises RuntimeError: If stop traffic script fails.
"""
# No need to check subtype, we know it is TREX.
- x_args = u""
+ command_line = OptionString().add(u"python3")
+ dirname = f"{Constants.REMOTE_FW_DIR}/GPL/tools/trex"
+ command_line.add(f"'{dirname}/trex_stateless_stop.py'")
+ command_line.change_prefix(u"--")
for index, value in enumerate(self._xstats):
if value is not None:
- # Nested quoting is fun.
value = value.replace(u"'", u"\"")
- x_args += f" --xstat{index}='\"'\"'{value}'\"'\"'"
+ command_line.add_equals(f"xstat{index}", f"'{value}'")
stdout, _ = exec_cmd_no_error(
- node, f"sh -c '{Constants.REMOTE_FW_DIR}/resources/tools/trex/"
- f"trex_stateless_stop.py{x_args}'",
- message=u"TRex stateless runtime error"
+ node, command_line, message=u"TRex stateless runtime error"
)
self._parse_traffic_results(stdout)
@@ -514,7 +515,7 @@ class TrafficGenerator(AbstractMeasurer):
:param rate: Traffic rate expressed with units (pps, %)
:param frame_size: L2 frame size to send (without padding and IPG).
:param traffic_profile: Module name as a traffic profile identifier.
- See resources/traffic_profiles/trex for implemented modules.
+ See GPL/traffic_profiles/trex for implemented modules.
:param async_call: If enabled then don't wait for all incomming trafic.
:param latency: With latency measurement.
:param warmup_time: Warmup time period.
@@ -539,30 +540,31 @@ class TrafficGenerator(AbstractMeasurer):
# No need to check subtype, we know it is TREX.
reorder = self._ifaces_reordered # Just to make the next line fit.
p_0, p_1 = (rx_port, tx_port) if reorder else (tx_port, rx_port)
-
if not isinstance(duration, (float, int)):
duration = float(duration)
if not isinstance(warmup_time, (float, int)):
warmup_time = float(warmup_time)
- command = f"sh -c \"" \
- f"{Constants.REMOTE_FW_DIR}/resources/tools/trex/" \
- f"trex_stateless_profile.py " \
- f"--profile {Constants.REMOTE_FW_DIR}/resources/" \
- f"traffic_profiles/trex/{traffic_profile}.py " \
- f"--duration {duration!r} --frame_size {frame_size} " \
- f"--rate {rate!r} --warmup_time {warmup_time!r} " \
- f"--port_0 {p_0} --port_1 {p_1} " \
- f"--traffic_directions {traffic_directions}"
- if async_call:
- command += u" --async_start"
- if latency:
- command += u" --latency"
- if Constants.TREX_SEND_FORCE:
- command += u" --force"
- command += u"\""
+
+ command_line = OptionString().add(u"python3")
+ dirname = f"{Constants.REMOTE_FW_DIR}/GPL/tools/trex"
+ command_line.add(f"'{dirname}/trex_stateless_profile.py'")
+ command_line.change_prefix(u"--")
+ dirname = f"{Constants.REMOTE_FW_DIR}/GPL/traffic_profiles/trex"
+ quoted_path = f"'{dirname}/{traffic_profile}.py'"
+ command_line.add_with_value(u"profile", quoted_path)
+ command_line.add_with_value(u"duration", f"{duration!r}")
+ command_line.add_with_value(u"frame_size", frame_size)
+ command_line.add_with_value(u"rate", f"{rate!r}")
+ command_line.add_with_value(u"warmup_time", f"{warmup_time!r}")
+ command_line.add_with_value(u"port_0", p_0)
+ command_line.add_with_value(u"port_1", p_1)
+ command_line.add_with_value(u"traffic_directions", traffic_directions)
+ command_line.add_if(u"async_start", async_call)
+ command_line.add_if(u"latency", latency)
+ command_line.add_if(u"force", Constants.TREX_SEND_FORCE)
stdout, _ = exec_cmd_no_error(
- self._node, command, timeout=float(duration) + 60,
+ self._node, command_line, timeout=float(duration) + 60,
message=u"TRex stateless runtime error"
)
@@ -630,7 +632,7 @@ class TrafficGenerator(AbstractMeasurer):
:param rate: Offered load per interface (e.g. 1%, 3gbps, 4mpps, ...).
:param frame_size: Frame size (L2) in Bytes.
:param traffic_profile: Module name as a traffic profile identifier.
- See resources/traffic_profiles/trex for implemented modules.
+ See GPL/traffic_profiles/trex for implemented modules.
:param warmup_time: Warmup phase in seconds.
:param async_call: Async mode.
:param latency: With latency measurement.
@@ -720,7 +722,7 @@ class TrafficGenerator(AbstractMeasurer):
:param frame_size: Frame size identifier or value [B].
:param traffic_profile: Module name as a traffic profile identifier.
- See resources/traffic_profiles/trex for implemented modules.
+ See GPL/traffic_profiles/trex for implemented modules.
:param warmup_time: Traffic duration before measurement starts [s].
:param traffic_directions: Traffic is bi- (2) or uni- (1) directional.
Default: 2
@@ -811,7 +813,7 @@ class OptimizedSearch:
:param frame_size: Frame size identifier or value [B].
:param traffic_profile: Module name as a traffic profile identifier.
- See resources/traffic_profiles/trex for implemented modules.
+ See GPL/traffic_profiles/trex for implemented modules.
:param minimum_transmit_rate: Minimal uni-directional
target transmit rate [pps].
:param maximum_transmit_rate: Maximal uni-directional
@@ -879,7 +881,7 @@ class OptimizedSearch:
:param frame_size: Frame size identifier or value [B].
:param traffic_profile: Module name as a traffic profile identifier.
- See resources/traffic_profiles/trex for implemented modules.
+ See GPL/traffic_profiles/trex for implemented modules.
:param minimum_transmit_rate: Minimal uni-directional
target transmit rate [pps].
:param maximum_transmit_rate: Maximal uni-directional
diff --git a/resources/libraries/python/TrafficScriptExecutor.py b/resources/libraries/python/TrafficScriptExecutor.py
index a9a733bbdf..8faa084ca1 100644
--- a/resources/libraries/python/TrafficScriptExecutor.py
+++ b/resources/libraries/python/TrafficScriptExecutor.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -55,11 +55,11 @@ class TrafficScriptExecutor:
"""
ssh = SSH()
ssh.connect(node)
+ module_name = script_file_name[:-3].replace('/', '.')
cmd = f"cd {Constants.REMOTE_FW_DIR}; virtualenv -p $(which python3) " \
f"--system-site-packages --never-download env && " \
f"export PYTHONPATH=${{PWD}}; . ${{PWD}}/env/bin/activate; " \
- f"resources/traffic_scripts/{script_file_name} {script_args}"
-
+ f"cd GPL; python -m traffic_scripts.{module_name} {script_args}"
ret_code, stdout, stderr = ssh.exec_command_sudo(
f'sh -c "{TrafficScriptExecutor._escape(cmd)}"', timeout=timeout
)
diff --git a/resources/tools/block_replacer/apache2gpl.sh b/resources/tools/block_replacer/apache2gpl.sh
new file mode 100644
index 0000000000..f248393d50
--- /dev/null
+++ b/resources/tools/block_replacer/apache2gpl.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2020 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -exuo pipefail
+
+if [[ "${#}" != "1" ]]; then
+ echo 'An utility to switch license comment blocks.'
+ echo 'Requires files "gpl_block.txt" and "apache_block.txt" in the working'
+ echo 'directory, and a single argument pointing to root directory.'
+ echo 'Affects only .sh and .py files.'
+ exit 1
+fi
+
+find "${1}" \( -name "*.py" -o -name "*.sh" \) -print0 | xargs -0 \
+python3 replace.py "apache_block.txt" "gpl_block.txt"
diff --git a/resources/tools/block_replacer/apache_block.txt b/resources/tools/block_replacer/apache_block.txt
new file mode 100644
index 0000000000..790a3c4ea1
--- /dev/null
+++ b/resources/tools/block_replacer/apache_block.txt
@@ -0,0 +1,11 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/resources/tools/block_replacer/gpl2apache.sh b/resources/tools/block_replacer/gpl2apache.sh
new file mode 100644
index 0000000000..a1ef8df075
--- /dev/null
+++ b/resources/tools/block_replacer/gpl2apache.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2020 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -exuo pipefail
+
+if [[ "${#}" != "1" ]]; then
+ echo 'An utility to switch license comment blocks.'
+ echo 'Requires files "gpl_block.txt" and "apache_block.txt" in the working'
+ echo 'directory, and a single argument pointing to root directory.'
+ echo 'Affects only .sh and .py files.'
+ exit 1
+fi
+
+find "${1}" \( -name "*.py" -o -name "*.sh" \) -print0 | xargs -0 \
+python3 replace.py "gpl_block.txt" "apache_block.txt"
diff --git a/resources/tools/block_replacer/gpl_block.txt b/resources/tools/block_replacer/gpl_block.txt
new file mode 100644
index 0000000000..2dbbb2af06
--- /dev/null
+++ b/resources/tools/block_replacer/gpl_block.txt
@@ -0,0 +1,13 @@
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file. If not, see <https://www.gnu.org/licenses/>.
diff --git a/resources/tools/block_replacer/replace.py b/resources/tools/block_replacer/replace.py
new file mode 100644
index 0000000000..02d1889331
--- /dev/null
+++ b/resources/tools/block_replacer/replace.py
@@ -0,0 +1,126 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2020 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""A script simplifying replacement of blocks of lines.
+
+A bash solution created by combining these two:
+ https://unix.stackexchange.com/a/181215
+ https://stackoverflow.com/a/23849180
+does not seem to work if the blocks contain complicated characters.
+"""
+
+import argparse
+import os
+import tempfile
+
+def main():
+ """Main function for the block replacing script."""
+
+ description = '''Replace a block of lines with another block.
+
+ Both block-to-replace and replacing-block are read from a file.
+ The replacement is performed on a file, in-place.
+ Only first block occurence is replaced.
+ If the block-to-replace is preceded by a partial match,
+ it may not be recognized.
+
+ The current implementation uses temporary files,
+ created in the working directory.
+ if something fails, thise temporary files need to be deleted manually.
+
+ TODO: Preserve target attributes. Maybe https://pypi.org/project/in-place/
+'''
+ parser = argparse.ArgumentParser(description)
+ parser.add_argument(
+ u"before", type=str,
+ help=u"Path to file containing the old content to replace."
+ )
+ parser.add_argument(
+ u"after", type=str,
+ help=u"Path to file containing the new content to replace with."
+ )
+ parser.add_argument(
+ u"targets", metavar=u"target", nargs=u"+", type=str,
+ help=u"Paths to file where the replacement should be made."
+ )
+ args = parser.parse_args()
+
+ do_it(args)
+
+
+def do_it(args):
+ """Read contents, create edited target, replace the original target with it.
+
+ :param args: Parsed command line arguments.
+ :type args: Object (typically argparse.Namespace) which contains
+ "before", "after" and "target" fields.
+ """
+ with open(args.before, u"r") as file_in:
+ content_before = file_in.readlines()
+ before_len = len(content_before)
+ with open(args.after, u"r") as file_in:
+ content_after = file_in.readlines()
+
+ for target in args.targets:
+ with tempfile.NamedTemporaryFile(
+ dir=u".", mode=u"w", delete=False
+ ) as file_out:
+ with open(target, u"r") as file_in:
+ # Phase one, searching for content, copying what does not match.
+ buffer_lines = list()
+ line_index_to_check = 0
+ content_found = False
+ while 1:
+ line_in = file_in.readline()
+ if not line_in:
+ print(f"{target}: Content not found.")
+ for line_out in buffer_lines:
+ file_out.write(line_out)
+ buffer_lines = list()
+ break
+ if line_in != content_before[line_index_to_check]:
+ line_index_to_check = 0
+ if buffer_lines:
+ for line_out in buffer_lines:
+ file_out.write(line_out)
+ buffer_lines = list()
+ file_out.write(line_in)
+ continue
+ buffer_lines.append(line_in)
+ line_index_to_check += 1
+ if line_index_to_check < before_len:
+ continue
+ # Buffer has the match! Do not write it.
+ content_found = True
+ break
+ if not content_found:
+ file_out.close()
+ os.remove(file_out.name)
+ continue
+ # Phase two, write the replacement instead.
+ for line_out in content_after:
+ file_out.write(line_out)
+ # Phase three, copy the rest of the file.
+ while 1:
+ line_in = file_in.readline()
+ if not line_in:
+ print(f"{target}: Replacement done.")
+ break
+ file_out.write(line_in)
+ os.replace(file_out.name, target)
+
+
+if __name__ == u"__main__":
+ main()
diff --git a/resources/traffic_scripts/vxlan.py b/resources/traffic_scripts/vxlan.py
deleted file mode 100644
index eebfb9056e..0000000000
--- a/resources/traffic_scripts/vxlan.py
+++ /dev/null
@@ -1,19 +0,0 @@
-from scapy.fields import BitField, XByteField, X3BytesField
-from scapy.layers.inet import UDP
-from scapy.layers.l2 import Ether
-from scapy.packet import Packet, bind_layers
-
-
-class VXLAN(Packet):
- name = u"VXLAN"
- fields_desc = [
- BitField(u"flags", 0x08000000, 32),
- X3BytesField(u"vni", 0),
- XByteField(u"reserved", 0x00)
- ]
-
- def mysummary(self):
- return self.sprintf(f"VXLAN (vni={VXLAN.vni})")
-
-bind_layers(UDP, VXLAN, dport=4789)
-bind_layers(VXLAN, Ether)