summaryrefslogtreecommitdiffstats
path: root/scripts/stl/flow_stats_latency.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/stl/flow_stats_latency.py')
-rw-r--r--scripts/stl/flow_stats_latency.py38
1 files changed, 25 insertions, 13 deletions
diff --git a/scripts/stl/flow_stats_latency.py b/scripts/stl/flow_stats_latency.py
index e1541272..8460fcfc 100644
--- a/scripts/stl/flow_stats_latency.py
+++ b/scripts/stl/flow_stats_latency.py
@@ -1,21 +1,33 @@
from trex_stl_lib.api import *
-import os
-
-# stream from pcap file. continues pps 10 in sec
-CP = os.path.join(os.path.dirname(__file__))
class STLS1(object):
-
- def get_streams (self, direction = 0, **kwargs):
- return [STLStream(packet = STLPktBuilder(pkt = os.path.join(CP, "yaml/udp_64B_no_crc.pcap")), # path relative to pwd
- mode = STLTXCont(pps=1000),
- flow_stats = STLFlowLatencyStats(pg_id = 1 + kwargs['port_id'])),
-
- STLStream(packet = STLPktBuilder(pkt = os.path.join(CP, "yaml/udp_594B_no_crc.pcap")), # path relative to pwd
- mode = STLTXCont(pps=5000),
- flow_stats = STLFlowLatencyStats(pg_id = 50 + kwargs['port_id']))
+ """
+ Create flow stat latency stream of UDP packet.
+ Can specify using tunables the packet length (fsize) and packet group id (pg_id)
+ Since we can't have two latency streams with same pg_id, in order to be able to start this profile
+ on more than one port, we add port_id to the pg_id
+ """
+
+ def __init__ (self):
+ self.fsize = 64
+ self.pg_id = 0
+
+ def _create_stream (self):
+ size = self.fsize - 4; # HW will add 4 bytes ethernet FCS
+ base_pkt = Ether() / IP(src = "16.0.0.1", dst = "48.0.0.1") / UDP(dport = 12, sport = 1025)
+ pad = max(0, size - len(base_pkt)) * 'x'
+ pkt = STLPktBuilder(pkt = base_pkt/pad)
+
+ return [STLStream(packet = pkt,
+ mode = STLTXCont(pps=1),
+ flow_stats = STLFlowLatencyStats(pg_id = self.pg_id))
]
+ def get_streams (self, fsize = 64, pg_id = 7, **kwargs):
+ self.fsize = fsize
+ self.pg_id = pg_id + kwargs['port_id']
+ return self._create_stream()
+
# dynamic load - used for trex console or simulator
def register():