summaryrefslogtreecommitdiffstats
path: root/scripts/automation
diff options
context:
space:
mode:
authorHanoh Haim <hhaim@cisco.com>2016-02-02 15:39:27 +0200
committerHanoh Haim <hhaim@cisco.com>2016-02-02 15:39:27 +0200
commitcce75776dbb2e05924b9628714886f11b762f1fa (patch)
tree987bfc420de3cf139db2306ea1fbbd86aff07753 /scripts/automation
parent9b60ab42d8be1239681bcf8079e6f6f149bde253 (diff)
add valn packet ad offset
Diffstat (limited to 'scripts/automation')
-rw-r--r--scripts/automation/regression/unit_tests/functional_tests/scapy_pkt_builder_test.py23
-rw-r--r--scripts/automation/trex_control_plane/client_utils/scapy_packet_builder.py8
2 files changed, 29 insertions, 2 deletions
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(":")