Xena_2544_tput_options: Add options for rfc 2544 testing 67/18267/1
authorChristian Trautman <ctrautma@redhat.com>
Tue, 9 Aug 2016 19:52:14 +0000 (15:52 -0400)
committerChristian Trautman <ctrautma@redhat.com>
Tue, 9 Aug 2016 19:52:14 +0000 (15:52 -0400)
Adds options to Xena for testing options when running RFC 2544
throughput testing.

JIRA: VSPERF-369

Change-Id: I3145bd1a4d697d7b06cafda4f9d77cce859d1839
Signed-off-by: Christian Trautman <ctrautma@redhat.com>
conf/03_traffic.conf
conf/10_custom.conf
docs/configguide/trafficgen.rst
tools/pkt_gen/xena/xena.py
tools/pkt_gen/xena/xena_json.py

index a5a8629..fd0f589 100644 (file)
@@ -179,6 +179,15 @@ TRAFFICGEN_XENA_PORT1_IP = '192.168.199.11'
 TRAFFICGEN_XENA_PORT1_CIDR = 24
 TRAFFICGEN_XENA_PORT1_GATEWAY = '192.168.199.1'
 
+# Xena RFC 2544 options
+# Please reference xena documentation before making changes to these settings
+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'
+
 ###################################################
 # MoonGen Configuration and Connection Info-- BEGIN
 
index fdb5031..b370714 100644 (file)
@@ -79,6 +79,15 @@ TRAFFICGEN_XENA_PORT1_IP = '192.168.199.11'
 TRAFFICGEN_XENA_PORT1_CIDR = 24
 TRAFFICGEN_XENA_PORT1_GATEWAY = '192.168.199.1'
 
+# Xena RFC 2544 options
+# Please reference xena documentation before making changes to these settings
+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'
+
 ###################################################
 # MoonGen Configuration and Connection Info-- BEGIN
 
index 939b6ca..c323ae9 100644 (file)
@@ -373,6 +373,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
 -------
index 449ef5b..8d45053 100755 (executable)
@@ -309,6 +309,17 @@ class Xena(ITrafficGenerator):
                     duration=self._duration, micro_tpld=True if self._params[
                         'traffic']['l2']['framesize'] == 64 else False)
                 j_file.enable_throughput_test()
+                j_file.modify_2544_tput_options(
+                    settings.getValue('TRAFFICGEN_XENA_2544_TPUT_INIT_VALUE'),
+                    settings.getValue('TRAFFICGEN_XENA_2544_TPUT_MIN_VALUE'),
+                    settings.getValue('TRAFFICGEN_XENA_2544_TPUT_MAX_VALUE'),
+                    settings.getValue(
+                        'TRAFFICGEN_XENA_2544_TPUT_VALUE_RESOLUTION'),
+                    settings.getValue(
+                        'TRAFFICGEN_XENA_2544_TPUT_USEPASS_THRESHHOLD'),
+                    settings.getValue(
+                        'TRAFFICGEN_XENA_2544_TPUT_PASS_THRESHHOLD')
+                )
 
             elif testtype == '2544_b2b':
                 j_file.set_test_options_back2back(
index 2a15a93..1ce7b46 100644 (file)
@@ -233,6 +233,22 @@ class XenaJSON(object):
         self.json_data['TestOptions']['TestTypeOptionMap']['Throughput'][
             'Enabled'] = 'true'
 
+    def modify_2544_tput_options(self, initial_value, minimum_value,
+                                 maximum_value, value_resolution,
+                                 use_pass_threshhold, pass_threshhold):
+        self.json_data['TestOptions']['TestTypeOptionMap']['Throughput'][
+            'RateIterationOptions']['InitialValue'] = initial_value
+        self.json_data['TestOptions']['TestTypeOptionMap']['Throughput'][
+            'RateIterationOptions']['MinimumValue'] = minimum_value
+        self.json_data['TestOptions']['TestTypeOptionMap']['Throughput'][
+            'RateIterationOptions']['MaximumValue'] = maximum_value
+        self.json_data['TestOptions']['TestTypeOptionMap']['Throughput'][
+            'RateIterationOptions']['ValueResolution'] = value_resolution
+        self.json_data['TestOptions']['TestTypeOptionMap']['Throughput'][
+            'RateIterationOptions']['UsePassThreshold'] = use_pass_threshhold
+        self.json_data['TestOptions']['TestTypeOptionMap']['Throughput'][
+            'RateIterationOptions']['PassThreshold'] = pass_threshhold
+
     def set_chassis_info(self, hostname, pwd):
         """
         Set the chassis info