summaryrefslogtreecommitdiffstats
path: root/scripts/stl
diff options
context:
space:
mode:
authorHanoh Haim <hhaim@cisco.com>2016-02-01 11:58:17 +0200
committerHanoh Haim <hhaim@cisco.com>2016-02-01 11:58:17 +0200
commit00d74df1d05ce2b47d37574fda8806d71841d3e9 (patch)
tree032d4457292ec4e3021a67ac5ddb90683da059ec /scripts/stl
parentdcacbb143335db3c6939e2d9dd87055c323e4ab3 (diff)
parentf9dcbd38e90601f5571bb5bcfb67170876ecd3c6 (diff)
Merge from origin
Diffstat (limited to 'scripts/stl')
-rw-r--r--scripts/stl/imix_1pkt_vm.yaml2
-rw-r--r--scripts/stl/profiles/__init__.py0
-rw-r--r--scripts/stl/profiles/imix.py87
3 files changed, 88 insertions, 1 deletions
diff --git a/scripts/stl/imix_1pkt_vm.yaml b/scripts/stl/imix_1pkt_vm.yaml
index bdb0b438..21075fa2 100644
--- a/scripts/stl/imix_1pkt_vm.yaml
+++ b/scripts/stl/imix_1pkt_vm.yaml
@@ -25,7 +25,7 @@
"add_value" : 1,
"is_big_endian" : false,
"name" : "l3_src",
- "pkt_offset" : 34,
+ "pkt_offset" : 30,
"type" : "write_flow_var"
}
]
diff --git a/scripts/stl/profiles/__init__.py b/scripts/stl/profiles/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/scripts/stl/profiles/__init__.py
diff --git a/scripts/stl/profiles/imix.py b/scripts/stl/profiles/imix.py
new file mode 100644
index 00000000..c0305cc3
--- /dev/null
+++ b/scripts/stl/profiles/imix.py
@@ -0,0 +1,87 @@
+
+from common.trex_streams import *
+from client_utils.packet_builder import CTRexPktBuilder
+
+
+class STLImix(object):
+
+ def __init__ (self):
+ ip_range = {'src' : {}, 'dst': {}}
+
+ ip_range['src']['start'] = "10.0.0.1"
+ ip_range['src']['end'] = "10.0.0.254"
+ ip_range['dst']['start'] = "8.0.0.1"
+ ip_range['dst']['end'] = "8.0.0.254"
+
+ self.ip_range = ip_range
+
+ def get_streams (self, flip = False):
+
+ # construct the base packet for the profile
+ base_pkt = CTRexPktBuilder()
+
+ base_pkt.add_pkt_layer("l2", dpkt.ethernet.Ethernet())
+ base_pkt.set_layer_attr("l2", "type", dpkt.ethernet.ETH_TYPE_IP)
+ base_pkt.add_pkt_layer("l3_ip", dpkt.ip.IP())
+ base_pkt.add_pkt_layer("l4_udp", dpkt.udp.UDP())
+
+
+ if not flip:
+ src = self.ip_range['src']
+ dst = self.ip_range['dst']
+ else:
+ src = self.ip_range['dst']
+ dst = self.ip_range['src']
+
+ base_pkt.set_vm_ip_range(ip_layer_name = "l3_ip",
+ ip_field = "src",
+ ip_start = src['start'],
+ ip_end = src['end'],
+ operation = "inc",
+ split = True)
+
+ base_pkt.set_vm_ip_range(ip_layer_name = "l3_ip",
+ ip_field = "dst",
+ ip_start = dst['start'],
+ ip_end = dst['end'],
+ operation = "inc")
+
+
+
+ # pad to 60 bytes
+ pkt_1 = base_pkt.clone()
+ payload_size = 60 - len(pkt_1.get_layer('l2'))
+ pkt_1.set_pkt_payload("a" * payload_size)
+
+ pkt_1.set_layer_attr("l3_ip", "len", len(pkt_1.get_layer('l3_ip')))
+
+
+ s1 = STLStream(packet = pkt_1,
+ mode = STLTXCont())
+
+ # stream 2
+ pkt_2 = base_pkt.clone()
+ payload_size = 590 - len(pkt_2.get_layer('l2'))
+ pkt_2.set_pkt_payload("a" * payload_size)
+
+ pkt_2.set_layer_attr("l3_ip", "len", len(pkt_2.get_layer('l3_ip')))
+
+ s2 = STLStream(packet = pkt_2,
+ mode = STLTXCont())
+
+
+ # stream 3
+ pkt_3 = base_pkt.clone()
+ payload_size = 1514 - len(pkt_3.get_layer('l2'))
+ pkt_3.set_pkt_payload("a" * payload_size)
+
+ pkt_3.set_layer_attr("l3_ip", "len", len(pkt_3.get_layer('l3_ip')))
+
+ s3 = STLStream(packet = pkt_3,
+ mode = STLTXCont())
+
+ return [s1, s2, s3]
+
+# dynamic load
+def register():
+ return STLImix()