From e4aca4273b3fa9ee022ceff138f2f694942db4e5 Mon Sep 17 00:00:00 2001 From: Christian Trautman Date: Tue, 9 Aug 2016 15:52:14 -0400 Subject: [PATCH] Xena_2544_tput_options: Add options for rfc 2544 testing Adds options to Xena for testing options when running RFC 2544 throughput testing. JIRA: VSPERF-369 Change-Id: I3145bd1a4d697d7b06cafda4f9d77cce859d1839 Signed-off-by: Christian Trautman --- conf/03_traffic.conf | 9 +++++++++ conf/10_custom.conf | 9 +++++++++ docs/configguide/trafficgen.rst | 19 +++++++++++++++++++ tools/pkt_gen/xena/xena.py | 11 +++++++++++ tools/pkt_gen/xena/xena_json.py | 16 ++++++++++++++++ 5 files changed, 64 insertions(+) diff --git a/conf/03_traffic.conf b/conf/03_traffic.conf index a5a8629d..fd0f589d 100644 --- a/conf/03_traffic.conf +++ b/conf/03_traffic.conf @@ -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 diff --git a/conf/10_custom.conf b/conf/10_custom.conf index fdb5031a..b3707149 100644 --- a/conf/10_custom.conf +++ b/conf/10_custom.conf @@ -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 diff --git a/docs/configguide/trafficgen.rst b/docs/configguide/trafficgen.rst index 939b6cad..c323ae9d 100644 --- a/docs/configguide/trafficgen.rst +++ b/docs/configguide/trafficgen.rst @@ -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 ------- diff --git a/tools/pkt_gen/xena/xena.py b/tools/pkt_gen/xena/xena.py index 449ef5b4..8d45053e 100755 --- a/tools/pkt_gen/xena/xena.py +++ b/tools/pkt_gen/xena/xena.py @@ -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( diff --git a/tools/pkt_gen/xena/xena_json.py b/tools/pkt_gen/xena/xena_json.py index 2a15a932..1ce7b46f 100644 --- a/tools/pkt_gen/xena/xena_json.py +++ b/tools/pkt_gen/xena/xena_json.py @@ -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 -- 2.16.6