diff options
author | 2016-04-14 23:46:39 +0300 | |
---|---|---|
committer | 2016-04-14 23:46:39 +0300 | |
commit | b577ba683afb5d31858b95bd0a9a9c479752c498 (patch) | |
tree | bce0389d22eda9c117bb96e0aa22cc2c8413ee6b /scripts/automation | |
parent | 94ce0dcd7f93fe82e667f38d805f56d6d828f824 (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')
4 files changed, 79 insertions, 6 deletions
diff --git a/scripts/automation/regression/stateful_tests/trex_imix_test.py b/scripts/automation/regression/stateful_tests/trex_imix_test.py index e7c27cc7..95a5471d 100755 --- a/scripts/automation/regression/stateful_tests/trex_imix_test.py +++ b/scripts/automation/regression/stateful_tests/trex_imix_test.py @@ -164,7 +164,7 @@ class CTRexIMIX_Test(CTRexGeneral_Test): self.check_CPU_benchmark(trex_res) - def test_jumbo(self, duration = 100): + def test_jumbo(self, duration = 100, **kwargs): if not self.is_loopback: self.router.configure_basic_interfaces(mtu = 9216) self.router.config_pbr(mode = "config") @@ -179,7 +179,8 @@ class CTRexIMIX_Test(CTRexGeneral_Test): nc = True, d = duration, f = 'cap2/imix_9k.yaml', - l = 1000) + l = 1000, + **kwargs) trex_res = self.trex.sample_to_run_finish() @@ -196,9 +197,12 @@ class CTRexIMIX_Test(CTRexGeneral_Test): def test_warm_up(self): try: self._testMethodName = 'test_jumbo' - self.test_jumbo(duration = 30) + self.test_jumbo(duration = 5, trex_development = True) except Exception as e: print('Ignoring this error: %s' % e) + if self.fail_reasons: + print('Ignoring this error(s):\n%s' % '\n'.join(self.fail_reasons)) + self.fail_reasons = [] def tearDown(self): CTRexGeneral_Test.tearDown(self) 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 |