From b75910ef6bb781b0d28eb253758bbe65d573b768 Mon Sep 17 00:00:00 2001 From: Anton Kiselev Date: Fri, 18 Nov 2016 13:50:35 +0700 Subject: scapy_service: take into account Ether.chksum when building payload with total_size Signed-off-by: Anton Kiselev --- .../stl/services/scapy_server/scapy_service.py | 3 ++- .../stl/services/scapy_server/unit_tests/test_scapy_service.py | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'scripts/automation/trex_control_plane/stl/services/scapy_server') diff --git a/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py b/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py index 88514aa8..8d99fe92 100755 --- a/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py +++ b/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py @@ -468,7 +468,8 @@ class Scapy_service(Scapy_service_api): gen.update(val) total_sz = gen['total_size'] del gen['total_size'] - gen['size'] = total_sz - len(scapy_pkt) + ether_chksum_size_bytes = 4 # will be added outside of Scapy. needs to be excluded here + gen['size'] = total_sz - len(scapy_pkt) - ether_chksum_size_bytes return generate_bytes(gen) else: return generate_bytes(val) diff --git a/scripts/automation/trex_control_plane/stl/services/scapy_server/unit_tests/test_scapy_service.py b/scripts/automation/trex_control_plane/stl/services/scapy_server/unit_tests/test_scapy_service.py index d1207ca5..91a457dc 100644 --- a/scripts/automation/trex_control_plane/stl/services/scapy_server/unit_tests/test_scapy_service.py +++ b/scripts/automation/trex_control_plane/stl/services/scapy_server/unit_tests/test_scapy_service.py @@ -6,6 +6,7 @@ import re from basetest import * RE_MAC = "^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$" +ether_chksum_sz = 4 # this chksum will be added automatically(outside of scapy/packet editor) TEST_MAC_1 = "10:10:10:10:10:10" # Test scapy structure @@ -78,7 +79,7 @@ def test_build_Raw(): ]) assert(str(pkt[Raw].load == "hi")) -def test_build_fixed_pkt_size_bytes_gen(): +def test_build_fixed_pkt_size_template_gen_64(): pkt = build_pkt_get_scapy([ layer_def("Ether"), layer_def("IP"), @@ -91,9 +92,9 @@ def test_build_fixed_pkt_size_bytes_gen(): }) ]) print(len(pkt)) - assert(len(pkt) == 64) + assert(len(pkt) == 64 - ether_chksum_sz) -def test_build_fixed_pkt_size_bytes_gen(): +def test_build_fixed_pkt_size_bytes_gen_256(): pkt = build_pkt_get_scapy([ layer_def("Ether"), layer_def("IP"), @@ -105,7 +106,7 @@ def test_build_fixed_pkt_size_bytes_gen(): }) ]) print(len(pkt)) - assert(len(pkt) == 256) + assert(len(pkt) == 256 - ether_chksum_sz) def test_get_all(): service.get_all(v_handler) -- cgit 1.2.3-korg