From cce75776dbb2e05924b9628714886f11b762f1fa Mon Sep 17 00:00:00 2001 From: Hanoh Haim Date: Tue, 2 Feb 2016 15:39:27 +0200 Subject: add valn packet ad offset --- .../functional_tests/scapy_pkt_builder_test.py | 23 ++++++++++++++++++++++ .../client_utils/scapy_packet_builder.py | 8 ++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) (limited to 'scripts/automation') diff --git a/scripts/automation/regression/unit_tests/functional_tests/scapy_pkt_builder_test.py b/scripts/automation/regression/unit_tests/functional_tests/scapy_pkt_builder_test.py index da8970e9..11838e16 100644 --- a/scripts/automation/regression/unit_tests/functional_tests/scapy_pkt_builder_test.py +++ b/scripts/automation/regression/unit_tests/functional_tests/scapy_pkt_builder_test.py @@ -61,6 +61,29 @@ class CTRexPktBuilderSanitySCapy_Test(pkt_bld_general_test.CGeneralPktBld_Test): 'split_by_var': ''} ) + def test_simple_scapy_vlan(self): + + py='5'*(9) + p1=Ether(src="00:00:00:01:00:00",dst="00:00:00:01:00:00")/ \ + Dot1Q(vlan=12)/ \ + Dot1Q(vlan=17)/ \ + IP(src="10.0.0.10",dst="48.0.0.1")/ \ + UDP(dport=12,sport=1025)/py + + p1.build(); + p1.dump_layers_offset() + p1.show2(); + hexdump(p1); + #wrpcap("ipv4_udp_9k.pcap", p1); + + p_utl=CTRexScapyPktUtl(p1); + + assert_equal(p_utl.get_pkt_layers(),"Ethernet:802.1Q:802.1Q:IP:UDP:Raw") + assert_equal(p_utl.layer_offset("802.1Q",0),14); + assert_equal(p_utl.layer_offset("802.1Q",1),18); + assert_equal(p_utl.get_field_offet_by_str("802|1Q.vlan"),(14,0)); + assert_equal(p_utl.get_field_offet_by_str("802|1Q:1.vlan"),(18,0)); + assert_equal(p_utl.get_field_offet_by_str("IP.src"),(34,4)); def tearDown(self): pass diff --git a/scripts/automation/trex_control_plane/client_utils/scapy_packet_builder.py b/scripts/automation/trex_control_plane/client_utils/scapy_packet_builder.py index 5ee4a044..62abe2ee 100644 --- a/scripts/automation/trex_control_plane/client_utils/scapy_packet_builder.py +++ b/scripts/automation/trex_control_plane/client_utils/scapy_packet_builder.py @@ -354,10 +354,13 @@ class CTRexScapyPktUtl(object): """ return layer offset by string + :parameters: + IP:0 IP:1 return offset + """ l1=layer_des.split(":") layer="" @@ -377,13 +380,14 @@ class CTRexScapyPktUtl(object): """ return field_des (offset,size) layer:cnt.field for example - + 802|1Q.vlan get 802.1Q->valn replace | with . IP.src IP:0.src (first IP.src like IP.src) for example IP:1.src for internal IP return (offset, size) as tuple + """ s=field_des.split("."); @@ -391,7 +395,7 @@ class CTRexScapyPktUtl(object): raise CTRexPacketBuildException(-11,("field desription should be layer:cnt.field e.g IP.src or IP:1.src ")); - layer_ex = s[0] + layer_ex = s[0].replace("|",".") field = s[1] l1=layer_ex.split(":") -- cgit 1.2.3-korg