import argparse
import json
import sys
+import time
sys.path.insert(
- 0, "/opt/trex-core-2.61/scripts/automation/trex_control_plane/interactive/"
+ 0, u"/opt/trex-core-2.73/scripts/automation/trex_control_plane/interactive/"
)
from trex.stl.api import *
def simple_burst(
profile_file, duration, framesize, rate, warmup_time, port_0, port_1,
- latency, async_start=False, traffic_directions=2):
+ latency, async_start=False, traffic_directions=2, force=False):
"""Send traffic and measure packet loss and latency.
Procedure:
:param latency: With latency stats.
:param async_start: Start the traffic and exit.
:param traffic_directions: Bidirectional (2) or unidirectional (1) traffic.
+ :param force: Force start regardless of ports state.
:type profile_file: str
:type framesize: int or str
:type duration: float
:type latency: bool
:type async_start: bool
:type traffic_directions: int
+ :type force: bool
"""
client = None
total_rcvd = 0
client.clear_stats()
# Choose rate and start traffic:
- client.start(ports=ports, mult=rate, duration=warmup_time)
+ time_start = time.time()
+ client.start(ports=ports, mult=rate, duration=warmup_time,
+ force=force)
# Block until done:
client.wait_on_traffic(ports=ports, timeout=warmup_time+30)
+ time_stop = time.time()
+ print(f"Warmup traffic took {time_stop - time_start} seconds.")
if client.get_warnings():
for warning in client.get_warnings():
lost_b = 0
# Choose rate and start traffic:
- client.start(ports=ports, mult=rate, duration=duration)
+ client.start(ports=ports, mult=rate, duration=duration, force=force)
+ time_start = time.time()
if async_start:
# For async stop, we need to export the current snapshot.
else:
# Block until done:
client.wait_on_traffic(ports=ports, timeout=duration+30)
+ time_stop = time.time()
+ print(f"Main traffic took {time_stop - time_start} seconds.")
if client.get_warnings():
for warning in client.get_warnings():
u"--traffic_directions", type=int, default=2,
help=u"Send bi- (2) or uni- (1) directional traffic."
)
+ parser.add_argument(
+ u"--force", action=u"store_true", default=False,
+ help=u"Force start regardless of ports state."
+ )
args = parser.parse_args()
profile_file=args.profile, duration=args.duration, framesize=framesize,
rate=args.rate, warmup_time=args.warmup_time, port_0=args.port_0,
port_1=args.port_1, latency=args.latency, async_start=args.async_start,
- traffic_directions=args.traffic_directions
+ traffic_directions=args.traffic_directions, force=args.force
)