summaryrefslogtreecommitdiffstats
path: root/scripts/automation/trex_control_plane
diff options
context:
space:
mode:
authorYaroslav Brustinov <ybrustin@cisco.com>2016-04-14 23:46:39 +0300
committerYaroslav Brustinov <ybrustin@cisco.com>2016-04-14 23:46:39 +0300
commitb577ba683afb5d31858b95bd0a9a9c479752c498 (patch)
treebce0389d22eda9c117bb96e0aa22cc2c8413ee6b /scripts/automation/trex_control_plane
parent94ce0dcd7f93fe82e667f38d805f56d6d828f824 (diff)
regression: add --python2 and --python3 to run_regression, if nothing provided, use python2.
hltapi: fix bug of not reducing 4 bytes from produced packets because of fcs. doc: add trex_client package stl/stf example of running examples :)
Diffstat (limited to 'scripts/automation/trex_control_plane')
-rwxr-xr-xscripts/automation/trex_control_plane/doc/index.rst45
-rw-r--r--scripts/automation/trex_control_plane/doc_stl/index.rst26
-rwxr-xr-xscripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_hltapi.py4
3 files changed, 72 insertions, 3 deletions
diff --git a/scripts/automation/trex_control_plane/doc/index.rst b/scripts/automation/trex_control_plane/doc/index.rst
index 62fd9975..041a17c2 100755
--- a/scripts/automation/trex_control_plane/doc/index.rst
+++ b/scripts/automation/trex_control_plane/doc/index.rst
@@ -18,6 +18,49 @@ To understand the entirely how the API works and how to set up the server side,
**Use the table of contents below or the menu to your left to navigate through the site**
+Client Package
+==============
+
+| Starting from version v1.99 TRex has separated client package included in main directory.
+| Put it at any place you like, preferably same place as your scripts.
+| (If it's not at same place as your scripts, you will need to ensure trex_client directory is in sys.path)
+
+Un-pack it using command:::
+
+ tar -xzf trex_client_<TRex version>.tar.gz
+
+| The client assumes stateful daemon is running.
+| After un-tarring the client package, you can verify basic tests in examples directory out of the box:
+
+.. code-block:: bash
+
+ cd trex_client/stf/examples
+ python stf_example.py -s <server address>
+
+You can verify that the traffic was sent and arrives properly if you see something like this:::
+
+ Connecting to 127.0.0.1
+ Connected, start TRex
+ Sample until end
+ Test results:
+ Is valid history? True
+ Done warmup? True
+ Expected tx rate: {u'm_tx_expected_pps': 71898.4, u'm_tx_expected_bps': 535157280.0, u'm_tx_expected_cps': 1943.2}
+ Current tx rate: {u'm_tx_bps': 542338368.0, u'm_tx_cps': 1945.4, u'm_tx_pps': 79993.4}
+ Maximum latency: {u'max-4': 55, u'max-5': 30, u'max-6': 50, u'max-7': 30, u'max-0': 55, u'max-1': 40, u'max-2': 55, u'max-3': 30}
+ Average latency: {'all': 32.913, u'port6': 35.9, u'port7': 30.0, u'port4': 35.8, u'port5': 30.0, u'port2': 35.8, u'port3': 30.0, u'port0': 35.8, u'port1': 30.0}
+ Average window latency: {'all': 31.543, u'port6': 32.871, u'port7': 28.929, u'port4': 33.886, u'port5': 28.929, u'port2': 33.843, u'port3': 28.929, u'port0': 33.871, u'port1': 31.086}
+ Total drops: -3
+ Drop rate: 0.0
+ History size so far: 7
+
+ TX by ports:
+ 0: 230579 | 1: 359435 | 2: 230578 | 3: 359430 | 4: 230570 | 5: 359415 | 6: 230564 | 7: 359410
+ RX by ports:
+ 0: 359434 | 1: 230580 | 2: 359415 | 3: 230571 | 4: 359429 | 5: 230579 | 6: 359411 | 7: 230565
+ CPU utilization:
+ [0.0, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8]
+
API Reference
=============
.. toctree::
@@ -50,4 +93,4 @@ Indices and tables
.. rubric:: Footnotes
-.. [#f1] For more information on JSON-RPC, check out the `official site <http://www.jsonrpc.org/>`_ \ No newline at end of file
+.. [#f1] For more information on JSON-RPC, check out the `official site <http://www.jsonrpc.org/>`_
diff --git a/scripts/automation/trex_control_plane/doc_stl/index.rst b/scripts/automation/trex_control_plane/doc_stl/index.rst
index aa2abd75..8a2fc4b0 100644
--- a/scripts/automation/trex_control_plane/doc_stl/index.rst
+++ b/scripts/automation/trex_control_plane/doc_stl/index.rst
@@ -24,6 +24,32 @@ Un-pack it using command::
tar -xzf trex_client.tar.gz
+How to use
+==================
+
+| The client assumes server is running.
+| After un-tarring the client package, you can verify basic tests in examples directory out of the box:
+
+.. code-block:: bash
+
+ cd trex_client/stl/examples
+ python stl_imix.py -s <server address>
+
+You can verify that the traffic was sent and arrives properly if you see something like this:::
+
+ Mapped ports to sides [0, 2] <--> [1, 3]
+ Injecting [0, 2] <--> [1, 3] on total rate of '30%' for 10 seconds
+
+ Packets injected from [0, 2]: 473,856
+ Packets injected from [1, 3]: 473,856
+
+ packets lost from [0, 2] --> [0, 2]: 0 pkts
+ packets lost from [1, 3] --> [1, 3]: 0 pkts
+
+ Test has passed :-)
+
+
+Also, in the stl folder there are directories with profiles that define streams and the console (with which you can easily send the profiles)
How to pyATS
==================
diff --git a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_hltapi.py b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_hltapi.py
index 45f3dd45..0afeff20 100755
--- a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_hltapi.py
+++ b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_hltapi.py
@@ -1584,7 +1584,7 @@ def correct_direction(user_kwargs, kwargs):
# we produce packets without fcs, so need to reduce produced sizes
def correct_sizes(kwargs):
- for arg in kwargs.keys():
- if is_integer(arg):
+ for arg, value in kwargs.items():
+ if is_integer(value):
if arg.endswith(('_length', '_size', '_size_min', '_size_max', '_length_min', '_length_max')):
kwargs[arg] -= 4