aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/trex/trex_stateless_stop.py
diff options
context:
space:
mode:
Diffstat (limited to 'resources/tools/trex/trex_stateless_stop.py')
-rwxr-xr-xresources/tools/trex/trex_stateless_stop.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/resources/tools/trex/trex_stateless_stop.py b/resources/tools/trex/trex_stateless_stop.py
index e8b6fdf96c..3fc599a5a4 100755
--- a/resources/tools/trex/trex_stateless_stop.py
+++ b/resources/tools/trex/trex_stateless_stop.py
@@ -23,8 +23,12 @@ Requirements:
Functionality:
1. Stop any running traffic
+2. Optionally restore reference counter values.
+3. Return conter differences.
"""
+import argparse
+from collections import OrderedDict # Needed to parse xstats representation.
import sys
import json
@@ -35,6 +39,13 @@ from trex.stl.api import *
def main():
"""Stop traffic if any is running. Report xstats."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument(
+ "--xstat0", type=str, default="", help="Reference xstat object if any.")
+ parser.add_argument(
+ "--xstat1", type=str, default="", help="Reference xstat object if any.")
+ args = parser.parse_args()
+
client = STLClient()
try:
# connect to server
@@ -44,7 +55,15 @@ def main():
# TODO: Support unidirection.
client.stop(ports=[0, 1])
- # read the stats after the test
+ # Read the stats after the test,
+ # we need to update values before the last trial started.
+ if args.xstat0:
+ snapshot = eval(args.xstat0)
+ client.ports[0].get_xstats().reference_stats = snapshot
+ if args.xstat1:
+ snapshot = eval(args.xstat1)
+ client.ports[1].get_xstats().reference_stats = snapshot
+ # Now we can call the official method to get differences.
xstats0 = client.get_xstats(0)
xstats1 = client.get_xstats(1)