diff options
author | Jan Gelety <jgelety@cisco.com> | 2019-11-12 05:27:43 +0100 |
---|---|---|
committer | Jan Gelety <jgelety@cisco.com> | 2019-11-28 18:26:21 +0100 |
commit | d68951ac245150eeefa6e0f4156e4c1b5c9e9325 (patch) | |
tree | 487554a7547218d27f0a61ec02b70502c32cdcb4 /resources/traffic_profiles/trex | |
parent | ed0258a440cfad7023d643f717ab78ac568dc59b (diff) |
Python3: resources and libraries
Change-Id: I1392c06b1d64f62b141d24c0d42a8e36913b15e2
Signed-off-by: Jan Gelety <jgelety@cisco.com>
Diffstat (limited to 'resources/traffic_profiles/trex')
-rwxr-xr-x | resources/traffic_profiles/trex/profile_trex_stateless_base_class.py | 76 |
1 files changed, 43 insertions, 33 deletions
diff --git a/resources/traffic_profiles/trex/profile_trex_stateless_base_class.py b/resources/traffic_profiles/trex/profile_trex_stateless_base_class.py index b5a4ba9a11..6576cb7bdf 100755 --- a/resources/traffic_profiles/trex/profile_trex_stateless_base_class.py +++ b/resources/traffic_profiles/trex/profile_trex_stateless_base_class.py @@ -24,18 +24,19 @@ from string import ascii_letters from trex.stl.api import * -class TrafficStreamsBaseClass(object): +class TrafficStreamsBaseClass: """Base class for stream profiles for T-rex traffic generator.""" + STREAM_TABLE = { - 'IMIX_v4': [ - {'size': 60, 'pps': 28, 'isg': 0}, - {'size': 590, 'pps': 20, 'isg': 0.1}, - {'size': 1514, 'pps': 4, 'isg': 0.2} + u"IMIX_v4": [ + {u"size": 60, u"pps": 28, u"isg": 0}, + {u"size": 590, u"pps": 20, u"isg": 0.1}, + {u"size": 1514, u"pps": 4, u"isg": 0.2} ], 'IMIX_v4_1': [ - {'size': 64, 'pps': 28, 'isg': 0}, - {'size': 570, 'pps': 16, 'isg': 0.1}, - {'size': 1518, 'pps': 4, 'isg': 0.2} + {u"size": 64, u"pps": 28, u"isg": 0}, + {u"size": 570, u"pps": 16, u"isg": 0.1}, + {u"size": 1518, u"pps": 4, u"isg": 0.2} ] } @@ -56,7 +57,7 @@ class TrafficStreamsBaseClass(object): :returns: The generated payload. :rtype: str """ - payload = "" + payload = u"" for _ in range(length): payload += choice(ascii_letters) @@ -78,11 +79,11 @@ class TrafficStreamsBaseClass(object): ip1 = socket.inet_pton(socket.AF_INET6, start_ip) ip2 = socket.inet_pton(socket.AF_INET6, end_ip) - hi1, lo1 = struct.unpack('!QQ', ip1) - hi2, lo2 = struct.unpack('!QQ', ip2) + hi1, lo1 = struct.unpack(u"!QQ", ip1) + hi2, lo2 = struct.unpack(u"!QQ", ip2) if ((hi1 << 64) | lo1) > ((hi2 << 64) | lo2): - raise ValueError("IPv6: start_ip is greater then end_ip") + raise ValueError(u"IPv6: start_ip is greater then end_ip") return lo1, abs(int(lo1) - int(lo2)) @@ -124,18 +125,22 @@ class TrafficStreamsBaseClass(object): # Direction 0 --> 1 pkt_a = STLPktBuilder( - pkt=base_pkt_a / self._gen_payload(payload_len), vm=vm1) + pkt=base_pkt_a / self._gen_payload(payload_len), vm=vm1 + ) # Direction 1 --> 0 pkt_b = STLPktBuilder( - pkt=base_pkt_b / self._gen_payload(payload_len), vm=vm2) + pkt=base_pkt_b / self._gen_payload(payload_len), vm=vm2 + ) # Packets for latency measurement: # Direction 0 --> 1 pkt_lat_a = STLPktBuilder( - pkt=base_pkt_a / self._gen_payload(payload_len), vm=vm1) + pkt=base_pkt_a / self._gen_payload(payload_len), vm=vm1 + ) # Direction 1 --> 0 pkt_lat_b = STLPktBuilder( - pkt=base_pkt_b / self._gen_payload(payload_len), vm=vm2) + pkt=base_pkt_b / self._gen_payload(payload_len), vm=vm2 + ) # Create the streams: # Direction 0 --> 1 @@ -147,26 +152,29 @@ class TrafficStreamsBaseClass(object): # Streams for latency measurement: # Direction 0 --> 1 - lat_stream1 = STLStream(packet=pkt_lat_a, - flow_stats=STLFlowLatencyStats(pg_id=0), - mode=STLTXCont(pps=9000)) + lat_stream1 = STLStream( + packet=pkt_lat_a, flow_stats=STLFlowLatencyStats(pg_id=0), + mode=STLTXCont(pps=9000) + ) # Direction 1 --> 0 # second traffic stream with a phase of 10ns (inter-stream gap) - lat_stream2 = STLStream(packet=pkt_lat_b, isg=10.0, - flow_stats=STLFlowLatencyStats(pg_id=1), - mode=STLTXCont(pps=9000)) + lat_stream2 = STLStream( + packet=pkt_lat_b, isg=10.0, + flow_stats=STLFlowLatencyStats(pg_id=1), + mode=STLTXCont(pps=9000) + ) return [stream1, stream2, lat_stream1, lat_stream2] # Frame size is defined as a string, e.g.IMIX_v4_1: elif isinstance(self.framesize, str): - stream1 = [] - stream2 = [] + stream1 = list() + stream2 = list() for stream in self.STREAM_TABLE[self.framesize]: - payload_len_a = max(0, stream['size'] - len(base_pkt_a) - 4) - payload_len_b = max(0, stream['size'] - len(base_pkt_b) - 4) + payload_len_a = max(0, stream[u"size"] - len(base_pkt_a) - 4) + payload_len_b = max(0, stream[u"size"] - len(base_pkt_b) - 4) # Create a base packet and pad it to size pkt_a = STLPktBuilder( pkt=base_pkt_a / self._gen_payload(payload_len_a), @@ -176,12 +184,14 @@ class TrafficStreamsBaseClass(object): vm=vm2) # Create the streams: - stream1.append(STLStream(packet=pkt_a, - isg=stream['isg'], - mode=STLTXCont(pps=stream['pps']))) - stream2.append(STLStream(packet=pkt_b, - isg=stream['isg'], - mode=STLTXCont(pps=stream['pps']))) + stream1.append(STLStream( + packet=pkt_a, isg=stream[u"isg"], + mode=STLTXCont(pps=stream[u"pps"])) + ) + stream2.append(STLStream( + packet=pkt_b, isg=stream[u"isg"], + mode=STLTXCont(pps=stream[u"pps"])) + ) streams = list() streams.extend(stream1) streams.extend(stream2) @@ -198,6 +208,6 @@ class TrafficStreamsBaseClass(object): :returns: Traffic streams. :rtype: list """ - self.framesize = kwargs['framesize'] + self.framesize = kwargs[u"framesize"] return self.create_streams() |