From d99f5906cc24436499eae91e5fa854ecc86a2e8b Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Mon, 16 Apr 2018 07:58:20 +0100 Subject: [PATCH] scapy: Load default SCAPY protocols After the fix of SCAPY library import, it was not possible to use some of the network protocols by T-Rex. T-Rex 2.38 uses by default SCAPY 2.3.1 for python3, but it overrides the default set of network protocols loaded by layers/all.py. VSPERF makefile was modified to restore original version of all.py from SCAPY 2.3.1 git repository. Also examples of scapy usage were updated to generate correct traffic with modified scapy version. JIRA: VSPERF-566 Change-Id: Ib9ae3c572e693e86d30eb0467ab9c812fe8f335b Signed-off-by: Martin Klozik Reviewed-by: Al Morton Reviewed-by: Christian Trautman Reviewed-by: Sridhar Rao --- docs/testing/user/configguide/trafficgen.rst | 14 +++++--------- src/trex/Makefile | 2 ++ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/docs/testing/user/configguide/trafficgen.rst b/docs/testing/user/configguide/trafficgen.rst index f9e2db11..42141c59 100644 --- a/docs/testing/user/configguide/trafficgen.rst +++ b/docs/testing/user/configguide/trafficgen.rst @@ -974,8 +974,8 @@ definition and supported network layers at: http://www.secdev.org/projects/scapy 'scapy': { 'enabled': True, - '0' : 'Ether(src={Ether_src}, dst={Ether_dst})/IP(proto={IP_proto}, src={IP_src}, dst={IP_dst})/ICMP()', - '1' : 'Ether(src={Ether_dst}, dst={Ether_src})/IP(proto={IP_proto}, src={IP_dst}, dst={IP_src})/ICMP()', + '0' : 'Ether(src={Ether_src}, dst={Ether_dst})/IP(proto="icmp", src={IP_src}, dst={IP_dst})/ICMP()', + '1' : 'Ether(src={Ether_dst}, dst={Ether_src})/IP(proto="icmp", src={IP_dst}, dst={IP_src})/ICMP()', } #. Generate IPv6 ICMP Echo Request @@ -992,17 +992,13 @@ definition and supported network layers at: http://www.secdev.org/projects/scapy '1' : 'Ether(src={Ether_dst}, dst={Ether_src})/IPv6(src={IP_dst}, dst={IP_src})/ICMPv6EchoRequest()', } -#. Generate SCTP frames: +#. Generate TCP frames: - Example uses default SCAPY frame definition, which can reflect ``TRAFFIC['l3']['proto']`` settings. The same - approach can be used to generate other protocols, e.g. TCP. + Example uses default SCAPY frame definition, which can reflect ``TRAFFIC['l3']['proto']`` settings. .. code-block:: console 'l3' : { - 'proto' : 'sctp', + 'proto' : 'tcp', }, - 'scapy': { - 'enabled': True, - } diff --git a/src/trex/Makefile b/src/trex/Makefile index 41eb52ab..9a0704af 100644 --- a/src/trex/Makefile +++ b/src/trex/Makefile @@ -29,6 +29,8 @@ all: force_pull force_pull: $(TAG_DONE_FLAG) $(AT)cd $(WORK_DIR) && git pull $(TREX_URL) $(TREX_TAG) @echo "git pull done" + $(AT)wget https://raw.githubusercontent.com/phaethon/scapy/v0.18/scapy/layers/all.py -O $(WORK_DIR)/scripts/external_libs/scapy-2.3.1/python3/scapy/layers/all.py + @echo "orignal SCAPY 2.3.1 layers/all.py was restored" $(WORK_DIR): $(AT)git clone $(TREX_URL) $(WORK_DIR) -- 2.16.6