Merge "cli: Modify configuration via CLI"
[vswitchperf.git] / docs / configguide / trafficgen.rst
index 63560b9..efcc4d8 100644 (file)
@@ -57,7 +57,7 @@ follows:
         },
     }
 
-The framesize paramter can be overridden from the configuration
+The framesize parameter can be overridden from the configuration
 files by adding the following to your custom configuration file
 ``10_custom.conf``:
 
@@ -69,15 +69,16 @@ OR from the commandline:
 
 .. code-block:: console
 
-    $ ./vsperf --test-params "pkt_sizes=x,y" $TESTNAME
+    $ ./vsperf --test-params "TRAFFICGEN_PKT_SIZES=(x,y)" $TESTNAME
 
 You can also modify the traffic transmission duration and the number
-of trials run by the traffic generator by extending the example
+of tests run by the traffic generator by extending the example
 commandline above to:
 
 .. code-block:: console
 
-    $ ./vsperf --test-params "pkt_sizes=x,y;duration=10;rfc2455_trials=3" $TESTNAME
+    $ ./vsperf --test-params "TRAFFICGEN_PKT_SIZES=(x,y);TRAFFICGEN_DURATION=10;" \
+                             "TRAFFICGEN_RFC2544_TESTS=1" $TESTNAME
 
 Dummy Setup
 ------------
@@ -169,13 +170,95 @@ IxNetwork -> IxNetwork\_$(VER\_NUM) -> IxNetwork TCL Server)
 
 Right click on IxNetwork TCL Server, select properties - Under shortcut tab in
 the Target dialogue box make sure there is the argument "-tclport xxxx"
-where xxxx is your port number (take note of this port number you will
+where xxxx is your port number (take note of this port number as you will
 need it for the 10\_custom.conf file).
 
 .. image:: TCLServerProperties.png
 
 Hit Ok and start the TCL server application
 
+VSPERF configuration
+~~~~~~~~~~~~~~~~~~~~
+
+There are several configuration options specific to the IxNetworks traffic generator
+from IXIA. It is essential to set them correctly, before the VSPERF is executed
+for the first time.
+
+Detailed description of options follows:
+
+ * TRAFFICGEN_IXNET_MACHINE - IP address of server, where IxNetwork TCL Server is running
+ * TRAFFICGEN_IXNET_PORT - PORT, where IxNetwork TCL Server is accepting connections from
+   TCL clients
+ * TRAFFICGEN_IXNET_USER - username, which will be used during communication with IxNetwork
+   TCL Server and IXIA chassis
+ * TRAFFICGEN_IXIA_HOST - IP address of IXIA traffic generator chassis
+ * TRAFFICGEN_IXIA_CARD - identification of card with dedicated ports at IXIA chassis
+ * TRAFFICGEN_IXIA_PORT1 - identification of the first dedicated port at TRAFFICGEN_IXIA_CARD
+   at IXIA chassis; VSPERF uses two separated ports for traffic generation. In case of
+   unidirectional traffic, it is essential to correctly connect 1st IXIA port to the 1st NIC
+   at DUT, i.e. to the first PCI handle from WHITELIST_NICS list. Otherwise traffic may not
+   be able to pass through the vSwitch.
+ * TRAFFICGEN_IXIA_PORT2 - identification of the second dedicated port at TRAFFICGEN_IXIA_CARD
+   at IXIA chassis; VSPERF uses two separated ports for traffic generation. In case of
+   unidirectional traffic, it is essential to correctly connect 2nd IXIA port to the 2nd NIC
+   at DUT, i.e. to the second PCI handle from WHITELIST_NICS list. Otherwise traffic may not
+   be able to pass through the vSwitch.
+ * TRAFFICGEN_IXNET_LIB_PATH - path to the DUT specific installation of IxNetwork TCL API
+ * TRAFFICGEN_IXNET_TCL_SCRIPT - name of the TCL script, which VSPERF will use for
+   communication with IXIA TCL server
+ * TRAFFICGEN_IXNET_TESTER_RESULT_DIR - folder accessible from IxNetwork TCL server,
+   where test results are stored, e.g. ``c:/ixia_results``; see test-results-share_
+ * TRAFFICGEN_IXNET_DUT_RESULT_DIR - directory accessible from the DUT, where test
+   results from IxNetwork TCL server are stored, e.g. ``/mnt/ixia_results``; see
+   test-results-share_
+
+.. _test-results-share:
+
+Test results share
+~~~~~~~~~~~~~~~~~~
+
+VSPERF is not able to retrieve test results via TCL API directly. Instead, all test
+results are stored at IxNetwork TCL server. Results are stored at folder defined by
+``TRAFFICGEN_IXNET_TESTER_RESULT_DIR`` configuration parameter. Content of this
+folder must be shared (e.g. via samba protocol) between TCL Server and DUT, where
+VSPERF is executed. VSPERF expects, that test results will be available at directory
+configured by ``TRAFFICGEN_IXNET_DUT_RESULT_DIR`` configuration parameter.
+
+Example of sharing configuration:
+
+ * Create a new folder at IxNetwork TCL server machine, e.g. ``c:\ixia_results``
+ * Modify sharing options of ``ixia_results`` folder to share it with everybody
+ * Create a new directory at DUT, where shared directory with results
+   will be mounted, e.g. ``/mnt/ixia_results``
+ * Update your custom VSPERF configuration file as follows:
+
+   .. code-block:: python
+
+       TRAFFICGEN_IXNET_TESTER_RESULT_DIR = 'c:/ixia_results'
+       TRAFFICGEN_IXNET_DUT_RESULT_DIR = '/mnt/ixia_results'
+
+   Note: It is essential to use slashes '/' also in path
+   configured by ``TRAFFICGEN_IXNET_TESTER_RESULT_DIR`` parameter.
+ * Install cifs-utils package.
+
+   e.g. at rpm based Linux distribution:
+
+   .. code-block:: console
+
+       yum install cifs-utils
+
+ * Mount shared directory, so VSPERF can access test results.
+
+   e.g. by adding new record into ``/etc/fstab``
+
+   .. code-block:: console
+
+       mount -t cifs //_TCL_SERVER_IP_OR_FQDN_/ixia_results /mnt/ixia_results
+             -o file_mode=0777,dir_mode=0777,nounix
+
+It is recommended to verify, that any new file inserted into ``c:/ixia_results`` folder
+is visible at DUT inside ``/mnt/ixia_results`` directory.
+
 Spirent Setup
 -------------
 
@@ -241,13 +324,49 @@ install the package. Once installed, the scripts named with 'rest' keyword
 can be used. For example: testcenter-rfc2544-rest.py can be used to run
 RFC 2544 tests using the REST interface.
 
+Configuration:
+~~~~~~~~~~~~~~
+The mandatory configurations are enlisted below.
+
+1. The Labserver and license server addresses. These parameters applies to
+   all the tests and are mandatory.
+
+.. code-block:: console
+
+    TRAFFICGEN_STC_LAB_SERVER_ADDR = " "
+    TRAFFICGEN_STC_LICENSE_SERVER_ADDR = " "
+
+2. For RFC2544 tests, the following parameters are mandatory
+
+
+.. code-block:: console
+
+    TRAFFICGEN_STC_RFC2544_TPUT_TEST_FILE_NAME = " "
+    TRAFFICGEN_STC_EAST_CHASSIS_ADDR = " "
+    TRAFFICGEN_STC_EAST_SLOT_NUM = " "
+    TRAFFICGEN_STC_EAST_PORT_NUM = " "
+    TRAFFICGEN_STC_EAST_INTF_ADDR = " "
+    TRAFFICGEN_STC_EAST_INTF_GATEWAY_ADDR = " "
+    TRAFFICGEN_STC_WEST_CHASSIS_ADDR = ""
+    TRAFFICGEN_STC_WEST_SLOT_NUM = " "
+    TRAFFICGEN_STC_WEST_PORT_NUM = " "
+    TRAFFICGEN_STC_WEST_INTF_ADDR = " "
+    TRAFFICGEN_STC_WEST_INTF_GATEWAY_ADDR = " "
+
+3. For RFC2889 tests, specifying the locations of the ports is mandatory.
+
+.. code-block:: console
+
+    TRAFFICGEN_STC_RFC2889_TEST_FILE_NAME = " "
+    TRAFFICGEN_STC_RFC2889_LOCATIONS= " "
+
 Xena Networks
 -------------
 
 Installation
 ~~~~~~~~~~~~
 
-Xena Networks traffic generator requires certain files and packages to be
+Xena Networks traffic generator requires specific files and packages to be
 installed. It is assumed the user has access to the Xena2544.exe file which
 must be placed in VSPerf installation location under the tools/pkt_gen/xena
 folder. Contact Xena Networks for the latest version of this file. The user
@@ -291,6 +410,25 @@ set to allow for proper connections to the chassis.
     TRAFFICGEN_XENA_MODULE1 = ''
     TRAFFICGEN_XENA_MODULE2 = ''
 
+RFC2544 Throughput Testing
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Xena traffic generator testing for rfc2544 throughput can be modified for
+different behaviors if needed. The default options for the following are
+optimized for best results.
+
+.. code-block:: console
+
+    TRAFFICGEN_XENA_2544_TPUT_INIT_VALUE = '10.0'
+    TRAFFICGEN_XENA_2544_TPUT_MIN_VALUE = '0.1'
+    TRAFFICGEN_XENA_2544_TPUT_MAX_VALUE = '100.0'
+    TRAFFICGEN_XENA_2544_TPUT_VALUE_RESOLUTION = '0.5'
+    TRAFFICGEN_XENA_2544_TPUT_USEPASS_THRESHHOLD = 'false'
+    TRAFFICGEN_XENA_2544_TPUT_PASS_THRESHHOLD = '0.0'
+
+Each value modifies the behavior of rfc 2544 throughput testing. Refer to your
+Xena documentation to understand the behavior changes in modifying these
+values.
 
 MoonGen
 -------
@@ -303,7 +441,9 @@ can be found here:
 
 https://github.com/emmericp/MoonGen
 
-For VSPerf use, MoonGen should be cloned from here (as opposed to the afore
+* Note:  Today, MoonGen with VSPERF only supports 10Gbps line speeds.
+
+For VSPerf use, MoonGen should be cloned from here (as opposed to the previously
 mentioned GitHub):
 
 git clone https://github.com/atheurer/MoonGen
@@ -332,3 +472,18 @@ One can set up this ssh access by doing the following on both servers:
 
     ssh-keygen -b 2048 -t rsa
     ssh-copy-id <other server>
+
+Configuration
+~~~~~~~~~~~~~
+
+Connection information for MoonGen must be supplied inside the
+``10_custom.conf`` or ``03_custom.conf`` file. The following parameters must be
+set to allow for proper connections to the host with MoonGen.
+
+.. code-block:: console
+
+    TRAFFICGEN_MOONGEN_HOST_IP_ADDR = ""
+    TRAFFICGEN_MOONGEN_USER = ""
+    TRAFFICGEN_MOONGEN_BASE_DIR = ""
+    TRAFFICGEN_MOONGEN_PORTS = ""
+    TRAFFICGEN_MOONGEN_LINE_SPEED_GBPS = ""