summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/automation/trex_control_plane/client/trex_adv_client.py2
-rwxr-xr-xscripts/automation/trex_control_plane/client/trex_client.py128
-rwxr-xr-xscripts/automation/trex_control_plane/client_utils/general_utils.py2
-rwxr-xr-xscripts/automation/trex_control_plane/client_utils/trex_yaml_gen.py6
-rwxr-xr-xscripts/automation/trex_control_plane/doc/about_trex.rst8
-rwxr-xr-xscripts/automation/trex_control_plane/doc/api/index.rst6
-rwxr-xr-xscripts/automation/trex_control_plane/doc/api/json_fields.rst12
-rwxr-xr-xscripts/automation/trex_control_plane/doc/authors.rst7
-rwxr-xr-xscripts/automation/trex_control_plane/doc/client_utils.rst4
-rwxr-xr-xscripts/automation/trex_control_plane/doc/conf.py14
-rwxr-xr-xscripts/automation/trex_control_plane/doc/index.rst16
-rwxr-xr-xscripts/automation/trex_control_plane/doc/installation.rst6
-rwxr-xr-xscripts/automation/trex_control_plane/doc/usage_examples.rst14
-rwxr-xr-xscripts/automation/trex_control_plane/examples/client_interactive_example.py102
14 files changed, 164 insertions, 163 deletions
diff --git a/scripts/automation/trex_control_plane/client/trex_adv_client.py b/scripts/automation/trex_control_plane/client/trex_adv_client.py
index b3fe3dad..b135da59 100755
--- a/scripts/automation/trex_control_plane/client/trex_adv_client.py
+++ b/scripts/automation/trex_control_plane/client/trex_adv_client.py
@@ -8,7 +8,7 @@ class CTRexAdvClient(trex_client.CTRexClient):
super(CTRexAdvClient, self).__init__(trex_host, max_history_size, trex_daemon_port, trex_zmq_port, verbose)
pass
- # T-REX KIWI advanced methods
+ # TREX KIWI advanced methods
def start_quick_trex(self, pcap_file, d, delay, dual, ipv6, times, interfaces):
try:
return self.server.start_quick_trex(pcap_file = pcap_file, duration = d, dual = dual, delay = delay, ipv6 = ipv6, times = times, interfaces = interfaces)
diff --git a/scripts/automation/trex_control_plane/client/trex_client.py b/scripts/automation/trex_control_plane/client/trex_client.py
index 56775766..4c40f142 100755
--- a/scripts/automation/trex_control_plane/client/trex_client.py
+++ b/scripts/automation/trex_control_plane/client/trex_client.py
@@ -30,18 +30,18 @@ from distutils.util import strtobool
class CTRexClient(object):
"""
- This class defines the client side of the RESTfull interaction with T-Rex
+ This class defines the client side of the RESTfull interaction with TRex
"""
def __init__(self, trex_host, max_history_size = 100, trex_daemon_port = 8090, trex_zmq_port = 4500, verbose = False):
"""
- Instantiate a T-Rex client object, and connecting it to listening daemon-server
+ Instantiate a TRex client object, and connecting it to listening daemon-server
:parameters:
trex_host : str
- a string of the t-rex ip address or hostname.
+ a string of the TRex ip address or hostname.
max_history_size : int
- a number to set the maximum history size of a single T-Rex run. Each sampling adds a new item to history.
+ a number to set the maximum history size of a single TRex run. Each sampling adds a new item to history.
default value : **100**
trex_daemon_port : int
@@ -90,7 +90,7 @@ class CTRexClient(object):
def start_trex (self, f, d, block_to_success = True, timeout = 30, user = None, **trex_cmd_options):
"""
- Request to start a T-Rex run on server.
+ Request to start a TRex run on server.
:parameters:
f : str
@@ -98,17 +98,17 @@ class CTRexClient(object):
d : int
the desired duration of the test. must be at least 30 seconds long.
block_to_success : bool
- determine if this method blocks until T-Rex changes state from 'Starting' to either 'Idle' or 'Running'
+ determine if this method blocks until TRex changes state from 'Starting' to either 'Idle' or 'Running'
default value : **True**
timeout : int
- maximum time (in seconds) to wait in blocking state until T-Rex changes state from 'Starting' to either 'Idle' or 'Running'
+ maximum time (in seconds) to wait in blocking state until TRex changes state from 'Starting' to either 'Idle' or 'Running'
default value: **30**
user : str
the identity of the the run issuer.
trex_cmd_options : key, val
- sets desired T-Rex options using key=val syntax, separated by comma.
+ sets desired TRex options using key=val syntax, separated by comma.
for keys with no value, state key=True
:return:
@@ -117,8 +117,8 @@ class CTRexClient(object):
:raises:
+ :exc:`ValueError`, in case 'd' parameter inserted with wrong value.
+ :exc:`trex_exceptions.TRexError`, in case one of the trex_cmd_options raised an exception at server.
- + :exc:`trex_exceptions.TRexInUseError`, in case T-Rex is already taken.
- + :exc:`trex_exceptions.TRexRequestDenied`, in case T-Rex is reserved for another user than the one trying start T-Rex.
+ + :exc:`trex_exceptions.TRexInUseError`, in case TRex is already taken.
+ + :exc:`trex_exceptions.TRexRequestDenied`, in case TRex is reserved for another user than the one trying start TRex.
+ ProtocolError, in case of error in JSON-RPC protocol.
"""
@@ -146,25 +146,25 @@ class CTRexClient(object):
if retval!=0:
self.seq = retval # update seq num only on successful submission
return True
- else: # T-Rex is has been started by another user
+ else: # TRex is has been started by another user
raise TRexInUseError('T-Rex is already being used by another user or process. Try again once T-Rex is back in IDLE state.')
def stop_trex (self):
"""
- Request to stop a T-Rex run on server.
+ Request to stop a TRex run on server.
- The request is only valid if the stop initiator is the same client as the T-Rex run initiator.
+ The request is only valid if the stop initiator is the same client as the TRex run initiator.
:parameters:
None
:return:
+ **True** on successful termination
- + **False** if request issued but T-Rex wasn't running.
+ + **False** if request issued but TRex wasn't running.
:raises:
- + :exc:`trex_exceptions.TRexRequestDenied`, in case T-Rex ir running but started by another user.
- + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed T-Rex run (unexpected termination).
+ + :exc:`trex_exceptions.TRexRequestDenied`, in case TRex ir running but started by another user.
+ + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed TRex run (unexpected termination).
+ ProtocolError, in case of error in JSON-RPC protocol.
"""
@@ -179,16 +179,16 @@ class CTRexClient(object):
def force_kill (self, confirm = True):
"""
- Force killing of running T-Rex process (if exists) on the server.
+ Force killing of running TRex process (if exists) on the server.
.. tip:: This method is a safety method and **overrides any running or reserved resources**, and as such isn't designed to be used on a regular basis.
Always consider using :func:`trex_client.CTRexClient.stop_trex` instead.
- In the end of this method, T-Rex will return to IDLE state with no reservation.
+ In the end of this method, TRex will return to IDLE state with no reservation.
:parameters:
confirm : bool
- Prompt a user confirmation before continue terminating T-Rex session
+ Prompt a user confirmation before continue terminating TRex session
:return:
+ **True** on successful termination
@@ -221,20 +221,20 @@ class CTRexClient(object):
def wait_until_kickoff_finish(self, timeout = 40):
"""
- Block the client application until T-Rex changes state from 'Starting' to either 'Idle' or 'Running'
+ Block the client application until TRex changes state from 'Starting' to either 'Idle' or 'Running'
- The request is only valid if the stop initiator is the same client as the T-Rex run initiator.
+ The request is only valid if the stop initiator is the same client as the TRex run initiator.
:parameters:
timeout : int
- maximum time (in seconds) to wait in blocking state until T-Rex changes state from 'Starting' to either 'Idle' or 'Running'
+ maximum time (in seconds) to wait in blocking state until TRex changes state from 'Starting' to either 'Idle' or 'Running'
:return:
+ **True** on successful termination
- + **False** if request issued but T-Rex wasn't running.
+ + **False** if request issued but TRex wasn't running.
:raises:
- + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed T-Rex run (unexpected termination).
+ + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed TRex run (unexpected termination).
+ ProtocolError, in case of error in JSON-RPC protocol.
.. note:: Exceptions are throws only when start_trex did not block in the first place, i.e. `block_to_success` parameter was set to `False`
@@ -252,22 +252,22 @@ class CTRexClient(object):
def is_running (self, dump_out = False):
"""
- Poll for T-Rex running status.
+ Poll for TRex running status.
- If T-Rex is running, a history item will be added into result_obj and processed.
+ If TRex is running, a history item will be added into result_obj and processed.
- .. tip:: This method is especially useful for iterating until T-Rex run is finished.
+ .. tip:: This method is especially useful for iterating until TRex run is finished.
:parameters:
dump_out : dict
if passed, the pointer object is cleared and the latest dump stored in it.
:return:
- + **True** if T-Rex is running.
- + **False** if T-Rex is not running.
+ + **True** if TRex is running.
+ + **False** if TRex is not running.
:raises:
- + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed T-Rex run (unexpected termination).
+ + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed TRex run (unexpected termination).
+ :exc:`TypeError`, in case JSON stream decoding error.
+ ProtocolError, in case of error in JSON-RPC protocol.
@@ -292,7 +292,7 @@ class CTRexClient(object):
def get_trex_files_path (self):
"""
- Fetches the local path in which files are stored when pushed to t-rex server from client.
+ Fetches the local path in which files are stored when pushed to TRex server from client.
:parameters:
None
@@ -300,7 +300,7 @@ class CTRexClient(object):
:return:
string representation of the desired path
- .. note:: The returned path represents a path on the T-Rex server **local machine**
+ .. note:: The returned path represents a path on the TRex server **local machine**
:raises:
ProtocolError, in case of error in JSON-RPC protocol.
@@ -317,7 +317,7 @@ class CTRexClient(object):
def get_running_status (self):
"""
- Fetches the current T-Rex status.
+ Fetches the current TRex status.
If available, a verbose data will accompany the state itself.
@@ -344,18 +344,18 @@ class CTRexClient(object):
def get_running_info (self):
"""
- Performs single poll of T-Rex running data and process it into the result object (named `result_obj`).
+ Performs single poll of TRex running data and process it into the result object (named `result_obj`).
- .. tip:: This method will throw an exception if T-Rex isn't running. Always consider using :func:`trex_client.CTRexClient.is_running` which handles a single poll operation in safer manner.
+ .. tip:: This method will throw an exception if TRex isn't running. Always consider using :func:`trex_client.CTRexClient.is_running` which handles a single poll operation in safer manner.
:parameters:
None
:return:
- dictionary containing the most updated data dump from T-Rex.
+ dictionary containing the most updated data dump from TRex.
:raises:
- + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed T-Rex run (unexpected termination).
+ + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed TRex run (unexpected termination).
+ :exc:`TypeError`, in case JSON stream decoding error.
+ ProtocolError, in case of error in JSON-RPC protocol.
@@ -379,7 +379,7 @@ class CTRexClient(object):
def sample_until_condition (self, condition_func, time_between_samples = 5):
"""
- Automatically sets ongoing sampling of T-Rex data, with sampling rate described by time_between_samples.
+ Automatically sets ongoing sampling of TRex data, with sampling rate described by time_between_samples.
On each fetched dump, the condition_func is applied on the result objects, and if returns True, the sampling will stop.
@@ -394,23 +394,23 @@ class CTRexClient(object):
default value : **5**
:return:
- the first result object (see :class:`CTRexResult` for further details) of the T-Rex run on which the condition has been met.
+ the first result object (see :class:`CTRexResult` for further details) of the TRex run on which the condition has been met.
:raises:
+ :exc:`UserWarning`, in case the condition_func method condition hasn't been met
- + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed T-Rex run (unexpected termination).
+ + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed TRex run (unexpected termination).
+ :exc:`TypeError`, in case JSON stream decoding error.
+ ProtocolError, in case of error in JSON-RPC protocol.
+ :exc:`Exception`, in case the condition_func suffered from any kind of exception
"""
- # make sure T-Rex is running. raise exceptions here if any
+ # make sure TRex is running. raise exceptions here if any
self.wait_until_kickoff_finish()
try:
while self.is_running():
results = self.get_result_obj()
if condition_func(results):
- # if condition satisfied, stop T-Rex and return result object
+ # if condition satisfied, stop TRex and return result object
self.stop_trex()
return results
time.sleep(time_between_samples)
@@ -423,7 +423,7 @@ class CTRexClient(object):
def sample_to_run_finish (self, time_between_samples = 5):
"""
- Automatically sets automatically sampling of T-Rex data with sampling rate described by time_between_samples until T-Rex run finished.
+ Automatically sets automatically sampling of TRex data with sampling rate described by time_between_samples until TRex run finished.
:parameters:
time_between_samples : int
@@ -436,7 +436,7 @@ class CTRexClient(object):
:raises:
+ :exc:`UserWarning`, in case the condition_func method condition hasn't been met
- + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed T-Rex run (unexpected termination).
+ + :exc:`trex_exceptions.TRexIncompleteRunError`, in case one of failed TRex run (unexpected termination).
+ :exc:`TypeError`, in case JSON stream decoding error.
+ ProtocolError, in case of error in JSON-RPC protocol.
@@ -475,13 +475,13 @@ class CTRexClient(object):
def is_reserved (self):
"""
- Checks if T-Rex is currently reserved to any user or not.
+ Checks if TRex is currently reserved to any user or not.
:parameters:
None
:return:
- + **True** if T-Rex is reserved.
+ + **True** if TRex is reserved.
+ **False** otherwise.
:raises:
@@ -499,13 +499,13 @@ class CTRexClient(object):
def reserve_trex (self, user = None):
"""
- Reserves the usage of T-Rex to a certain user.
+ Reserves the usage of TRex to a certain user.
- When T-Rex is reserved, it can't be reserved.
+ When TRex is reserved, it can't be reserved.
:parameters:
user : str
- a username of the desired owner of T-Rex
+ a username of the desired owner of TRex
default: current logged user
@@ -513,8 +513,8 @@ class CTRexClient(object):
**True** if reservation made successfully
:raises:
- + :exc:`trex_exceptions.TRexRequestDenied`, in case T-Rex is reserved for another user than the one trying to make the reservation.
- + :exc:`trex_exceptions.TRexInUseError`, in case T-Rex is currently running.
+ + :exc:`trex_exceptions.TRexRequestDenied`, in case TRex is reserved for another user than the one trying to make the reservation.
+ + :exc:`trex_exceptions.TRexInUseError`, in case TRex is currently running.
+ ProtocolError, in case of error in JSON-RPC protocol.
"""
@@ -530,14 +530,14 @@ class CTRexClient(object):
def cancel_reservation (self, user = None):
"""
- Cancels a current reservation of T-Rex to a certain user.
+ Cancels a current reservation of TRex to a certain user.
- When T-Rex is reserved, no other user can start new T-Rex runs.
+ When TRex is reserved, no other user can start new TRex runs.
:parameters:
user : str
- a username of the desired owner of T-Rex
+ a username of the desired owner of TRex
default: current logged user
@@ -546,7 +546,7 @@ class CTRexClient(object):
+ **False** if there was no reservation at all.
:raises:
- + :exc:`trex_exceptions.TRexRequestDenied`, in case T-Rex is reserved for another user than the one trying to cancel the reservation.
+ + :exc:`trex_exceptions.TRexRequestDenied`, in case TRex is reserved for another user than the one trying to cancel the reservation.
+ ProtocolError, in case of error in JSON-RPC protocol.
"""
@@ -671,7 +671,7 @@ class CTRexClient(object):
def _handle_AppError_exception(self, err):
"""
- This private method triggres the T-Rex dedicated exception generation in case a general ProtocolError has been raised.
+ This private method triggres the TRex dedicated exception generation in case a general ProtocolError has been raised.
"""
# handle known exceptions based on known error codes.
# if error code is not known, raise ProtocolError
@@ -680,17 +680,17 @@ class CTRexClient(object):
class CTRexResult(object):
"""
- A class containing all results received from T-Rex.
+ A class containing all results received from TRex.
Ontop to containing the results, this class offers easier data access and extended results processing options
"""
def __init__(self, max_history_size):
"""
- Instatiate a T-Rex result object
+ Instatiate a TRex result object
:parameters:
max_history_size : int
- a number to set the maximum history size of a single T-Rex run. Each sampling adds a new item to history.
+ a number to set the maximum history size of a single TRex run. Each sampling adds a new item to history.
"""
self._history = deque(maxlen = max_history_size)
@@ -749,7 +749,7 @@ class CTRexResult(object):
def get_avg_latency (self):
"""
- Fetches the average latency measured on each of the interfaces from the start of T-Rex run
+ Fetches the average latency measured on each of the interfaces from the start of TRex run
:parameters:
None
@@ -779,7 +779,7 @@ class CTRexResult(object):
def get_total_drops (self):
"""
- Fetches the total number of drops identified from the moment T-Rex run began.
+ Fetches the total number of drops identified from the moment TRex run began.
:parameters:
None
@@ -805,7 +805,7 @@ class CTRexResult(object):
def is_valid_hist (self):
"""
- Checks if result obejct contains valid data.
+ Checks if result object contains valid data.
:parameters:
None
@@ -819,7 +819,7 @@ class CTRexResult(object):
def set_valid_hist (self, valid_stat = True):
"""
- Sets result obejct validity status.
+ Sets result object validity status.
:parameters:
valid_stat : bool
@@ -835,7 +835,7 @@ class CTRexResult(object):
def is_done_warmup (self):
"""
- Checks if T-Rex latest results TX-rate indicates that T-Rex has reached its expected TX-rate.
+ Checks if TRex latest results TX-rate indicates that TRex has reached its expected TX-rate.
:parameters:
None
diff --git a/scripts/automation/trex_control_plane/client_utils/general_utils.py b/scripts/automation/trex_control_plane/client_utils/general_utils.py
index b5912628..5488b9dd 100755
--- a/scripts/automation/trex_control_plane/client_utils/general_utils.py
+++ b/scripts/automation/trex_control_plane/client_utils/general_utils.py
@@ -37,7 +37,7 @@ def find_path_to_pardir (pardir, base_path = os.getcwd() ):
"""
Finds the absolute path for some parent dir `pardir`, starting from base_path
- The request is only valid if the stop intitiator is the same client as the T-Rex run intitiator.
+ The request is only valid if the stop initiator is the same client as the TRex run initiator.
:parameters:
pardir : str
diff --git a/scripts/automation/trex_control_plane/client_utils/trex_yaml_gen.py b/scripts/automation/trex_control_plane/client_utils/trex_yaml_gen.py
index 755674ea..351b7b9c 100755
--- a/scripts/automation/trex_control_plane/client_utils/trex_yaml_gen.py
+++ b/scripts/automation/trex_control_plane/client_utils/trex_yaml_gen.py
@@ -7,7 +7,7 @@ import os
class CTRexYaml(object):
"""
- This class functions as a YAML generator according to T-Rex YAML format.
+ This class functions as a YAML generator according to TRex YAML format.
CTRexYaml is compatible with both Python 2 and Python 3.
"""
@@ -38,7 +38,7 @@ class CTRexYaml(object):
:parameters:
trex_files_path : str
- a path (on T-Rex server side) for the pcap files using which T-Rex can access it.
+ a path (on TRex server side) for the pcap files using which TRex can access it.
"""
self.yaml_obj = list(CTRexYaml.YAML_TEMPLATE)
@@ -193,7 +193,7 @@ class CTRexYaml(object):
"""
Returns a list of all files related to the YAML object, including the YAML filename itself.
- .. tip:: This method is especially useful for listing all the files that should be pushed to T-Rex server as part of the same yaml selection.
+ .. tip:: This method is especially useful for listing all the files that should be pushed to TRex server as part of the same yaml selection.
:parameters:
None
diff --git a/scripts/automation/trex_control_plane/doc/about_trex.rst b/scripts/automation/trex_control_plane/doc/about_trex.rst
index 97cad97d..08858048 100755
--- a/scripts/automation/trex_control_plane/doc/about_trex.rst
+++ b/scripts/automation/trex_control_plane/doc/about_trex.rst
@@ -1,11 +1,11 @@
-===================
-About T-Rex project
-===================
+==================
+About TRex project
+==================
Full project's official site
----------------------------
-To learn all about T-Rex project, visit Cisco's internal `official site <http://csi-wiki-01:8080/display/bpsim/Home>`_
+To learn all about TRex project, visit TRex `official site <http://trex-tgn.cisco.com>`_
Even more
---------
diff --git a/scripts/automation/trex_control_plane/doc/api/index.rst b/scripts/automation/trex_control_plane/doc/api/index.rst
index 8233a634..7c558a94 100755
--- a/scripts/automation/trex_control_plane/doc/api/index.rst
+++ b/scripts/automation/trex_control_plane/doc/api/index.rst
@@ -1,9 +1,9 @@
API Reference
=============
-The T-Rex API reference section is currently a work in progress.
+The TRex API reference section is currently a work in progress.
-**T-Rex Modules**
+**TRex Modules**
.. toctree::
:maxdepth: 4
@@ -11,7 +11,7 @@ The T-Rex API reference section is currently a work in progress.
client_code
exceptions
-**T-Rex JSON Template**
+**TRex JSON Template**
.. toctree::
:maxdepth: 4
diff --git a/scripts/automation/trex_control_plane/doc/api/json_fields.rst b/scripts/automation/trex_control_plane/doc/api/json_fields.rst
index b1a2af7c..193aa01b 100755
--- a/scripts/automation/trex_control_plane/doc/api/json_fields.rst
+++ b/scripts/automation/trex_control_plane/doc/api/json_fields.rst
@@ -1,23 +1,23 @@
-T-Rex JSON Template
-===================
+TRex JSON Template
+==================
-Whenever T-Rex is publishing live data, it uses JSON notation to describe the data-object.
+Whenever TRex is publishing live data, it uses JSON notation to describe the data-object.
-Each client may parse it diffrently, however this page will describe the values meaning when published by T-Rex server.
+Each client may parse it diffrently, however this page will describe the values meaning when published by TRex server.
Main Fields
-----------
-Each T-Rex server-published JSON object contains data divided to main fields under which the actual data lays.
+Each TRex server-published JSON object contains data divided to main fields under which the actual data lays.
These main fields are:
+-----------------------------+----------------------------------------------------+---------------------------+
| Main field | Contains | Comments |
+=============================+====================================================+===========================+
-| :ref:`trex-global-field` | Must-have data on T-Rex run, | |
+| :ref:`trex-global-field` | Must-have data on TRex run, | |
| | mainly regarding Tx/Rx and packet drops | |
+-----------------------------+----------------------------------------------------+---------------------------+
| :ref:`tx-gen-field` | Data indicate the quality of the transmit process. | |
diff --git a/scripts/automation/trex_control_plane/doc/authors.rst b/scripts/automation/trex_control_plane/doc/authors.rst
index 3b85f020..08ee5db5 100755
--- a/scripts/automation/trex_control_plane/doc/authors.rst
+++ b/scripts/automation/trex_control_plane/doc/authors.rst
@@ -2,11 +2,12 @@
Authors
=======
-T-Rex is developed in Cisco Systems Inc. as the next generation traffic generator.
+TRex is developed in Cisco Systems Inc. as the next generation traffic generator.
-T-Rex core-team developers are:
+TRex core-team developers are:
- Hanoch Haim
- Dave Johnson
- Wenxian Li
- - Dan Klein \ No newline at end of file
+ - Dan Klein
+ - Itay Marom \ No newline at end of file
diff --git a/scripts/automation/trex_control_plane/doc/client_utils.rst b/scripts/automation/trex_control_plane/doc/client_utils.rst
index 224dfe19..5f133eee 100755
--- a/scripts/automation/trex_control_plane/doc/client_utils.rst
+++ b/scripts/automation/trex_control_plane/doc/client_utils.rst
@@ -2,8 +2,8 @@
Client Utilities
================
-T-Rex YAML generator
---------------------
+TRex YAML generator
+-------------------
.. automodule:: trex_yaml_gen
:members:
diff --git a/scripts/automation/trex_control_plane/doc/conf.py b/scripts/automation/trex_control_plane/doc/conf.py
index fb9ea83c..46d0435d 100755
--- a/scripts/automation/trex_control_plane/doc/conf.py
+++ b/scripts/automation/trex_control_plane/doc/conf.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
-# T-Rex Control Plain documentation build configuration file, created by
+# TRex Control Plain documentation build configuration file, created by
# sphinx-quickstart on Tue Jun 2 07:48:10 2015.
#
# This file is execfile()d with the current directory set to its
@@ -54,7 +54,7 @@ source_suffix = '.rst'
master_doc = 'index'
# General information about the project.
-project = u'T-Rex Control Plain'
+project = u'TRex Control Plain'
copyright = u'2015, Cisco Systems Inc.'
author = u'Dan Klein for Cisco Systems Inc.'
@@ -211,7 +211,7 @@ html_static_path = ['_static']
#html_search_scorer = 'scorer.js'
# Output file base name for HTML help builder.
-htmlhelp_basename = 'T-RexControlPlaindoc'
+htmlhelp_basename = 'TRexControlPlaindoc'
# -- Options for LaTeX output ---------------------------------------------
@@ -233,7 +233,7 @@ latex_elements = {
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
- (master_doc, 'T-RexControlPlain.tex', u'T-Rex Control Plain Documentation',
+ (master_doc, 'TRexControlPlain.tex', u'TRex Control Plain Documentation',
u'Dan Klein for Cisco Systems Inc', 'manual'),
]
@@ -263,7 +263,7 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
- (master_doc, 't-rexcontrolplain', u'T-Rex Control Plain Documentation',
+ (master_doc, 'TRexcontrolplain', u'TRex Control Plain Documentation',
[author], 1)
]
@@ -277,8 +277,8 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
- (master_doc, 'T-RexControlPlain', u'T-Rex Control Plain Documentation',
- author, 'T-RexControlPlain', 'One line description of project.',
+ (master_doc, 'TRexControlPlain', u'TRex Control Plain Documentation',
+ author, 'TRexControlPlain', 'One line description of project.',
'Miscellaneous'),
]
diff --git a/scripts/automation/trex_control_plane/doc/index.rst b/scripts/automation/trex_control_plane/doc/index.rst
index e7a619d8..dcaf9505 100755
--- a/scripts/automation/trex_control_plane/doc/index.rst
+++ b/scripts/automation/trex_control_plane/doc/index.rst
@@ -1,18 +1,18 @@
-.. T-Rex Control Plain documentation master file, created by
+.. TRex Control Plain documentation master file, created by
sphinx-quickstart on Tue Jun 2 07:48:10 2015.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
-Welcome to T-Rex Control Plain's documentation!
+Welcome to TRex Control Plain's documentation!
===============================================
-T-Rex is a **realistic traffic generator** that enables you to do get learn more about your under developement devices.
+TRex is a **realistic traffic generator** that enables you to do get learn more about your under developement devices.
-This site covers the Python API of T-Rex control plane, and explains how to utilize it to your needs.
+This site covers the Python API of TRex control plane, and explains how to utilize it to your needs.
However, since the entire API is JSON-RPC [#f1]_ based, you may want to check out other implementations that could suit you.
-To understand the entirely how the API works and how to set up the server side, check out the `API documentation <http://csi-wiki-01:8080/display/bpsim/Documentation>`_ undee the documentation section of T-Rex website.
+To understand the entirely how the API works and how to set up the server side, check out the `API documentation <http://csi-wiki-01:8080/display/bpsim/Documentation>`_ undee the documentation section of TRex website.
**Use the table of contents below or the menu to your left to navigate through the site**
@@ -34,12 +34,12 @@ API Reference
api/index
-About T-Rex
-===========
+About TRex
+==========
.. toctree::
:maxdepth: 2
- All about T-Rex <about_trex>
+ All about TRex <about_trex>
license
diff --git a/scripts/automation/trex_control_plane/doc/installation.rst b/scripts/automation/trex_control_plane/doc/installation.rst
index dda32f56..29239d97 100755
--- a/scripts/automation/trex_control_plane/doc/installation.rst
+++ b/scripts/automation/trex_control_plane/doc/installation.rst
@@ -4,9 +4,9 @@ Installation
Prerequisites
-------------
-The T-Rex control plane is based on client-server model that interacts using JSON-RPC.
+The TRex control plane is based on client-server model that interacts using JSON-RPC.
-In order to use the client-side API documented a T-Rex server daemon must be up and listening on the same host and port that the client tries to connect with.
+In order to use the client-side API documented a TRex server daemon must be up and listening on the same host and port that the client tries to connect with.
Compatibility
-------------
@@ -20,6 +20,6 @@ However, the server side was desined to and best fits with Python 2.7.6 and on (
Installation manual
-------------------
-T-Rex Control Plane is a cross-platform, cross-operatin system APi to control and run T-Rex.
+TRex Control Plane is a cross-platform, cross-operating system APi to control and run TRex.
The full, most updated manual (which refers to all programming languages) can be found under the `Automation API documentation <http://csi-wiki-01:8080/display/bpsim/Documentation>`_ . \ No newline at end of file
diff --git a/scripts/automation/trex_control_plane/doc/usage_examples.rst b/scripts/automation/trex_control_plane/doc/usage_examples.rst
index 7116f28c..ff5c026d 100755
--- a/scripts/automation/trex_control_plane/doc/usage_examples.rst
+++ b/scripts/automation/trex_control_plane/doc/usage_examples.rst
@@ -6,7 +6,7 @@ Usage Examples
Full-featured interactive shell
-------------------------------
-The `client_interactive_example.py` extends and uses the `Cmd <https://docs.python.org/2/library/cmd.html>`_ built in python class to create a Full-featured shell using which one can interact with T-Rex server and get instant results.
+The `client_interactive_example.py` extends and uses the `Cmd <https://docs.python.org/2/library/cmd.html>`_ built in python class to create a Full-featured shell using which one can interact with TRex server and get instant results.
The help menu of this application is:
@@ -14,21 +14,21 @@ The help menu of this application is:
usage: client_interactive_example [options]
- Run T-Rex client API demos and scenarios.
+ Run TRex client API demos and scenarios.
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-t HOST, --trex-host HOST
- Specify the hostname or ip to connect with T-Rex
+ Specify the hostname or ip to connect with TRex
server.
-p PORT, --trex-port PORT
- Select port on which the T-Rex server listens. Default
+ Select port on which the TRex server listens. Default
port is 8090.
-m SIZE, --maxhist SIZE
Specify maximum history size saved at client side.
Default size is 100.
- --verbose Switch ON verbose option at T-Rex client. Default is:
+ --verbose Switch ON verbose option at TRex client. Default is:
OFF.
**Code Excerpt**
@@ -51,8 +51,8 @@ The demo takes the user a full circle:
2. exporting the generated packets into .pcap file named `dns_traffic.pcap`.
3. Use the :class:`trex_yaml_gen.CTRexYaml` generator to include that pcap file in the yaml object.
4. Export the YAML object onto a YAML file named `dns_traffic.yaml`
- 5. Push the generated files to T-Rex server.
- 6. Run T-Rex based on the generated (and pushed) files.
+ 5. Push the generated files to TRex server.
+ 6. Run TRex based on the generated (and pushed) files.
**Code Excerpt** [#f1]_
diff --git a/scripts/automation/trex_control_plane/examples/client_interactive_example.py b/scripts/automation/trex_control_plane/examples/client_interactive_example.py
index 05028463..5a3ebf8a 100755
--- a/scripts/automation/trex_control_plane/examples/client_interactive_example.py
+++ b/scripts/automation/trex_control_plane/examples/client_interactive_example.py
@@ -15,7 +15,7 @@ import errno
class InteractiveTRexClient(cmd.Cmd):
- intro = termstyle.green("\nInteractive shell to play with Cisco's T-Rex API.\nType help to view available pre-defined scenarios\n(c) All rights reserved.\n")
+ intro = termstyle.green("\nInteractive shell to play with Cisco's TRex API.\nType help to view available pre-defined scenarios\n(c) All rights reserved.\n")
prompt = '> '
def __init__(self, trex_host, max_history_size = 100, trex_port = 8090, verbose_mode = False ):
@@ -33,89 +33,89 @@ class InteractiveTRexClient(cmd.Cmd):
def do_push_files (self, filepaths):
- """Pushes a custom file to be stored locally on T-Rex server.\nPush multiple files by spefiying their path separated by ' ' (space)."""
+ """Pushes a custom file to be stored locally on TRex server.\nPush multiple files by spefiying their path separated by ' ' (space)."""
try:
filepaths = filepaths.split(' ')
- print termstyle.green("*** Starting pushing files ({trex_files}) to T-Rex. ***".format (trex_files = ', '.join(filepaths)) )
+ print termstyle.green("*** Starting pushing files ({trex_files}) to TRex. ***".format (trex_files = ', '.join(filepaths)) )
ret_val = self.trex.push_files(filepaths)
if ret_val:
- print termstyle.green("*** End of T-Rex push_files method (success) ***")
+ print termstyle.green("*** End of TRex push_files method (success) ***")
else:
- print termstyle.magenta("*** End of T-Rex push_files method (failed) ***")
+ print termstyle.magenta("*** End of TRex push_files method (failed) ***")
except IOError as inst:
print termstyle.magenta(inst)
def do_show_default_run_params(self,line):
- """Outputs the default T-Rex running parameters"""
+ """Outputs the default TRex running parameters"""
pprint(self.DEFAULT_RUN_PARAMS)
- print termstyle.green("*** End of default T-Rex running parameters ***")
+ print termstyle.green("*** End of default TRex running parameters ***")
def do_show_run_params(self,line):
- """Outputs the currently configured T-Rex running parameters"""
+ """Outputs the currently configured TRex running parameters"""
pprint(self.run_params)
- print termstyle.green("*** End of T-Rex running parameters ***")
+ print termstyle.green("*** End of TRex running parameters ***")
def do_update_run_params(self, json_str):
- """Updates provided parameters on T-Rex running configuration. Provide using JSON string"""
+ """Updates provided parameters on TRex running configuration. Provide using JSON string"""
if json_str:
try:
upd_params = self.decoder.decode(json_str)
self.run_params.update(upd_params)
- print termstyle.green("*** End of T-Rex parameters update ***")
+ print termstyle.green("*** End of TRex parameters update ***")
except ValueError as inst:
print termstyle.magenta("Provided illegal JSON string. Please try again.\n[", inst,"]")
else:
print termstyle.magenta("JSON configuration string is missing. Please try again.")
def do_show_status (self, line):
- """Prompts T-Rex current status"""
+ """Prompts TRex current status"""
print self.trex.get_running_status()
- print termstyle.green("*** End of T-Rex status prompt ***")
+ print termstyle.green("*** End of TRex status prompt ***")
def do_show_trex_files_path (self, line):
- """Prompts the local path in which files are stored when pushed to t-rex server from client"""
+ """Prompts the local path in which files are stored when pushed to TRex server from client"""
print self.trex.get_trex_files_path()
print termstyle.green("*** End of trex_files_path prompt ***")
def do_show_reservation_status (self, line):
- """Prompts if T-Rex is currently reserved or not"""
+ """Prompts if TRex is currently reserved or not"""
if self.trex.is_reserved():
- print "T-Rex is reserved"
+ print "TRex is reserved"
else:
- print "T-Rex is NOT reserved"
+ print "TRex is NOT reserved"
print termstyle.green("*** End of reservation status prompt ***")
def do_reserve_trex (self, user):
- """Reserves the usage of T-Rex to a certain user"""
+ """Reserves the usage of TRex to a certain user"""
try:
if not user:
ret = self.trex.reserve_trex()
else:
ret = self.trex.reserve_trex(user.split(' ')[0])
- print termstyle.green("*** T-Rex reserved successfully ***")
+ print termstyle.green("*** TRex reserved successfully ***")
except TRexException as inst:
print termstyle.red(inst)
def do_cancel_reservation (self, user):
- """Cancels a current reservation of T-Rex to a certain user"""
+ """Cancels a current reservation of TRex to a certain user"""
try:
if not user:
ret = self.trex.cancel_reservation()
else:
ret = self.trex.cancel_reservation(user.split(' ')[0])
- print termstyle.green("*** T-Rex reservation canceled successfully ***")
+ print termstyle.green("*** TRex reservation canceled successfully ***")
except TRexException as inst:
print termstyle.red(inst)
def do_restore_run_default (self, line):
- """Restores original T-Rex running configuration"""
+ """Restores original TRex running configuration"""
self.run_params = dict(self.DEFAULT_RUN_PARAMS)
print termstyle.green("*** End of restoring default run parameters ***")
def do_run_until_finish (self, sample_rate):
- """Starts T-Rex and sample server until run is done."""
- print termstyle.green("*** Starting T-Rex run_until_finish scenario ***")
+ """Starts TRex and sample server until run is done."""
+ print termstyle.green("*** Starting TRex run_until_finish scenario ***")
if not sample_rate: # use default sample rate if not passed
sample_rate = 5
@@ -123,15 +123,15 @@ class InteractiveTRexClient(cmd.Cmd):
sample_rate = int(sample_rate)
ret = self.trex.start_trex(**self.run_params)
self.trex.sample_to_run_finish(sample_rate)
- print termstyle.green("*** End of T-Rex run ***")
+ print termstyle.green("*** End of TRex run ***")
except ValueError as inst:
print termstyle.magenta("Provided illegal sample rate value. Please try again.\n[", inst,"]")
except TRexException as inst:
print termstyle.red(inst)
def do_run_and_poll (self, sample_rate):
- """Starts T-Rex and sample server manually until run is done."""
- print termstyle.green("*** Starting T-Rex run and manually poll scenario ***")
+ """Starts TRex and sample server manually until run is done."""
+ print termstyle.green("*** Starting TRex run and manually poll scenario ***")
if not sample_rate: # use default sample rate if not passed
sample_rate = 5
try:
@@ -145,7 +145,7 @@ class InteractiveTRexClient(cmd.Cmd):
# do WHATEVER here
time.sleep(sample_rate)
- print termstyle.green("*** End of T-Rex run ***")
+ print termstyle.green("*** End of TRex run ***")
except ValueError as inst:
print termstyle.magenta("Provided illegal sample rate value. Please try again.\n[", inst,"]")
except TRexException as inst:
@@ -153,8 +153,8 @@ class InteractiveTRexClient(cmd.Cmd):
def do_run_until_condition (self, sample_rate):
- """Starts T-Rex and sample server until condition is satisfied."""
- print termstyle.green("*** Starting T-Rex run until condition is satisfied scenario ***")
+ """Starts TRex and sample server until condition is satisfied."""
+ print termstyle.green("*** Starting TRex run until condition is satisfied scenario ***")
def condition (result_obj):
return result_obj.get_current_tx_rate()['m_tx_pps'] > 200000
@@ -166,55 +166,55 @@ class InteractiveTRexClient(cmd.Cmd):
ret = self.trex.start_trex(**self.run_params)
ret_val = self.trex.sample_until_condition(condition, sample_rate)
print ret_val
- print termstyle.green("*** End of T-Rex run ***")
+ print termstyle.green("*** End of TRex run ***")
except ValueError as inst:
print termstyle.magenta("Provided illegal sample rate value. Please try again.\n[", inst,"]")
except TRexException as inst:
print termstyle.red(inst)
def do_start_and_return (self, line):
- """Start T-Rex run and once in 'Running' mode, return to cmd prompt"""
- print termstyle.green("*** Starting T-Rex run, wait until in 'Running' state ***")
+ """Start TRex run and once in 'Running' mode, return to cmd prompt"""
+ print termstyle.green("*** Starting TRex run, wait until in 'Running' state ***")
try:
ret = self.trex.start_trex(**self.run_params)
- print termstyle.green("*** End of scenario (T-Rex is probably still running!) ***")
+ print termstyle.green("*** End of scenario (TRex is probably still running!) ***")
except TRexException as inst:
print termstyle.red(inst)
def do_poll_once (self, line):
- """Performs a single poll of T-Rex current data dump (if T-Rex is running) and prompts and short version of latest result_obj"""
- print termstyle.green("*** Trying T-Rex single poll ***")
+ """Performs a single poll of TRex current data dump (if TRex is running) and prompts and short version of latest result_obj"""
+ print termstyle.green("*** Trying TRex single poll ***")
try:
last_res = dict()
if self.trex.is_running(dump_out = last_res):
obj = self.trex.get_result_obj()
print obj
else:
- print termstyle.magenta("T-Rex isn't currently running.")
- print termstyle.green("*** End of scenario (T-Rex is posssibly still running!) ***")
+ print termstyle.magenta("TRex isn't currently running.")
+ print termstyle.green("*** End of scenario (TRex is posssibly still running!) ***")
except TRexException as inst:
print termstyle.red(inst)
def do_stop_trex (self, line):
- """Try to stop T-Rex run (if T-Rex is currently running)"""
- print termstyle.green("*** Starting T-Rex termination ***")
+ """Try to stop TRex run (if TRex is currently running)"""
+ print termstyle.green("*** Starting TRex termination ***")
try:
ret = self.trex.stop_trex()
- print termstyle.green("*** End of scenario (T-Rex is not running now) ***")
+ print termstyle.green("*** End of scenario (TRex is not running now) ***")
except TRexException as inst:
print termstyle.red(inst)
def do_kill_indiscriminately (self, line):
- """Force killing of running T-Rex process (if exists) on the server."""
- print termstyle.green("*** Starting T-Rex termination ***")
+ """Force killing of running TRex process (if exists) on the server."""
+ print termstyle.green("*** Starting TRex termination ***")
ret = self.trex.force_kill()
if ret:
- print termstyle.green("*** End of scenario (T-Rex is not running now) ***")
+ print termstyle.green("*** End of scenario (TRex is not running now) ***")
elif ret is None:
- print termstyle.magenta("*** End of scenario (T-Rex termination aborted) ***")
+ print termstyle.magenta("*** End of scenario (TRex termination aborted) ***")
else:
- print termstyle.red("*** End of scenario (T-Rex termination failed) ***")
+ print termstyle.red("*** End of scenario (TRex termination failed) ***")
def do_exit(self, arg):
"""Quits the application"""
@@ -223,20 +223,20 @@ class InteractiveTRexClient(cmd.Cmd):
if __name__ == "__main__":
- parser = ArgumentParser(description = termstyle.cyan('Run T-Rex client API demos and scenarios.'),
+ parser = ArgumentParser(description = termstyle.cyan('Run TRex client API demos and scenarios.'),
usage = """client_interactive_example [options]""" )
parser.add_argument('-v', '--version', action='version', version='%(prog)s 1.0 \t (C) Cisco Systems Inc.\n')
parser.add_argument("-t", "--trex-host", required = True, dest="trex_host",
- action="store", help="Specify the hostname or ip to connect with T-Rex server.",
+ action="store", help="Specify the hostname or ip to connect with TRex server.",
metavar="HOST" )
parser.add_argument("-p", "--trex-port", type=int, default = 8090, metavar="PORT", dest="trex_port",
- help="Select port on which the T-Rex server listens. Default port is 8090.", action="store")
+ help="Select port on which the TRex server listens. Default port is 8090.", action="store")
parser.add_argument("-m", "--maxhist", type=int, default = 100, metavar="SIZE", dest="hist_size",
help="Specify maximum history size saved at client side. Default size is 100.", action="store")
parser.add_argument("--verbose", dest="verbose",
- action="store_true", help="Switch ON verbose option at T-Rex client. Default is: OFF.",
+ action="store_true", help="Switch ON verbose option at TRex client. Default is: OFF.",
default = False )
args = parser.parse_args()
@@ -248,7 +248,7 @@ if __name__ == "__main__":
exit(-1)
except socket.error, e:
if e.errno == errno.ECONNREFUSED:
- raise socket.error(errno.ECONNREFUSED, "Connection from T-Rex server was terminated. Please make sure the server is up.")
+ raise socket.error(errno.ECONNREFUSED, "Connection from TRex server was terminated. Please make sure the server is up.")