From c6f710bc844e812fe448f7a2850fe15058328777 Mon Sep 17 00:00:00 2001 From: imarom Date: Thu, 18 Feb 2016 06:15:53 -0500 Subject: [PATCH] profiles for PCAPs --- scripts/stl/pcap.py | 26 ++++++++++++++++++++++++ scripts/stl/pcap_with_vm.py | 48 ++++++++++++++++++++++++++++++++++++++++++++ scripts/stl/sample.pcap | Bin 0 -> 98768 bytes 3 files changed, 74 insertions(+) create mode 100644 scripts/stl/pcap.py create mode 100644 scripts/stl/pcap_with_vm.py create mode 100644 scripts/stl/sample.pcap diff --git a/scripts/stl/pcap.py b/scripts/stl/pcap.py new file mode 100644 index 00000000..d4b88a53 --- /dev/null +++ b/scripts/stl/pcap.py @@ -0,0 +1,26 @@ +import os +from trex_stl_lib.api import * + +# PCAP profile +class STLPcap(object): + + def __init__ (self, pcap_file): + self.pcap_file = pcap_file + + def get_streams (self, + ipg_usec = 10.0, + loop_count = 1): + + profile = STLProfile.load_pcap(self.pcap_file, ipg_usec = ipg_usec, loop_count = loop_count) + + return profile.get_streams() + + + +# dynamic load - used for trex console or simulator +def register(): + # get file relative to profile dir + return STLPcap(os.path.join(os.path.dirname(__file__), 'sample.pcap')) + + + diff --git a/scripts/stl/pcap_with_vm.py b/scripts/stl/pcap_with_vm.py new file mode 100644 index 00000000..7962d2b2 --- /dev/null +++ b/scripts/stl/pcap_with_vm.py @@ -0,0 +1,48 @@ +import os +from trex_stl_lib.api import * + +# PCAP profile +class STLPcap(object): + + def __init__ (self, pcap_file): + self.pcap_file = pcap_file + + def create_vm (self, ip_src_range, ip_dst_range): + if not ip_src_range and not ip_dst_range: + return None + + vm = [STLVmFixIpv4(offset = "IP")] + + if ip_src_range: + vm += [STLVmFlowVar(name="src", min_value = ip_src_range['start'], max_value = ip_src_range['end'], size = 4, op = "inc"), + STLVmWrFlowVar(fv_name="src",pkt_offset= "IP.src") + ] + + if ip_dst_range: + vm += [STLVmFlowVar(name="dst", min_value = ip_dst_range['start'], max_value = ip_dst_range['end'], size = 4, op = "inc"), + STLVmWrFlowVar(fv_name="dst",pkt_offset= "IP.dst") + ] + + return vm + + + def get_streams (self, + ipg_usec = 10.0, + loop_count = 1, + ip_src_range = None, + ip_dst_range = {'start' : '10.0.0.1', 'end': '10.0.0.254'}): + + vm = self.create_vm(ip_src_range, ip_dst_range) + profile = STLProfile.load_pcap(self.pcap_file, ipg_usec = ipg_usec, loop_count = loop_count, vm = vm) + + return profile.get_streams() + + + +# dynamic load - used for trex console or simulator +def register(): + # get file relative to profile dir + return STLPcap(os.path.join(os.path.dirname(__file__), 'sample.pcap')) + + + diff --git a/scripts/stl/sample.pcap b/scripts/stl/sample.pcap new file mode 100644 index 0000000000000000000000000000000000000000..2cb9d893170850c67e76da025aecd06cbea5dc02 GIT binary patch literal 98768 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