From 4481df385ac03ece015ccb429201f96189dc5ae2 Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Wed, 14 Dec 2016 14:02:43 +0000 Subject: traffic: Configurable traffic details Traffic generated by traffic generator is based on default values and their modifications specific to particular testing scenario. Traffic default values were defined inside VSPERF code and it was not possible to change them. This patch introduces new TRAFFIC dictionary inside 03_traffic.conf. Thus user can modify any of TRAFFIC values either in configuration file or by CLI or by 'Parameters' section of testcase definition. Following CLI options were obsoleted by this patch: 'bidirectional', 'traffic_type', 'iload', 'multistream', 'stream_type' and 'pre-installed_flows' Following CLI option was renamed to be consistent with other options: 'tunnel_type' => 'TUNNEL_TYPE' Following sections of testcase definition were obsoleted: "Traffic Type", "biDirectional", "MultiStream", "Stream Type", "Pre-installed Flows", "Flow Type" and "iLoad" New TRAFFIC dictionary should be used instead of old CLI options and old testcase definition sections. Testcase definitons, yardstick sample testcases and documentation were updated to reflect configuration changes. JIRA: VSPERF-433 Change-Id: I03a388c766491d5688e715f6d7b51e8e0377ec27 Signed-off-by: Martin Klozik Reviewed-by: Al Morton Reviewed-by: Christian Trautman Reviewed-by: Bill Michalowski Reviewed-by: Antonio Fischetti Reviewed-by: --- docs/userguide/integration.rst | 10 +++++----- docs/userguide/teststeps.rst | 26 ++++++++++++++++++-------- docs/userguide/testusage.rst | 31 +++++++------------------------ docs/userguide/yardstick.rst | 29 +++++++++++------------------ 4 files changed, 41 insertions(+), 55 deletions(-) (limited to 'docs/userguide') diff --git a/docs/userguide/integration.rst b/docs/userguide/integration.rst index 003e8adb..60ed9245 100755 --- a/docs/userguide/integration.rst +++ b/docs/userguide/integration.rst @@ -82,21 +82,21 @@ To run VXLAN encapsulation tests: .. code-block:: console ./vsperf --conf-file user_settings.py --integration \ - --test-params 'tunnel_type=vxlan' overlay_p2p_tput + --test-params 'TUNNEL_TYPE=vxlan' overlay_p2p_tput To run GRE encapsulation tests: .. code-block:: console ./vsperf --conf-file user_settings.py --integration \ - --test-params 'tunnel_type=gre' overlay_p2p_tput + --test-params 'TUNNEL_TYPE=gre' overlay_p2p_tput To run GENEVE encapsulation tests: .. code-block:: console ./vsperf --conf-file user_settings.py --integration \ - --test-params 'tunnel_type=geneve' overlay_p2p_tput + --test-params 'TUNNEL_TYPE=geneve' overlay_p2p_tput To run OVS NATIVE tunnel tests (VXLAN/GRE/GENEVE): @@ -128,7 +128,7 @@ To run OVS NATIVE tunnel tests (VXLAN/GRE/GENEVE): .. code-block:: console ./vsperf --conf-file user_settings.py --integration \ - --test-params 'tunnel_type=vxlan' overlay_p2p_tput + --test-params 'TUNNEL_TYPE=vxlan' overlay_p2p_tput Executing VXLAN decapsulation tests @@ -189,7 +189,7 @@ To run GRE decapsulation tests: .. code-block:: console - ./vsperf --conf-file user_settings.py --test-params 'tunnel_type=gre' \ + ./vsperf --conf-file user_settings.py --test-params 'TUNNEL_TYPE=gre' \ --integration overlay_p2p_decap_cont diff --git a/docs/userguide/teststeps.rst b/docs/userguide/teststeps.rst index 5e2d9570..5029f538 100644 --- a/docs/userguide/teststeps.rst +++ b/docs/userguide/teststeps.rst @@ -374,8 +374,12 @@ That is accomplished by using "Stream Type" and "MultiStream" keywords. "Name": "multistream_l4", "Description": "Multistream on UDP ports", "Deployment": "clean", - "Stream Type": "L4", - "MultiStream": 4, + "Parameters": { + 'TRAFFIC' : { + "multistream": 4, + "stream_type": "L4", + }, + }, "TestSteps": [ ['vswitch', 'add_switch', 'int_br0'], # STEP 0 ['vswitch', 'add_phy_port', 'int_br0'], # STEP 1 @@ -542,8 +546,12 @@ destination UDP port. "Name": "ex_2pvp_rule_l4dp", "Description": "2 PVP with flows on L4 Dest Port", "Deployment": "clean", - "Stream Type": "L4", # loop UDP ports - "MultiStream": 2, + "Parameters": { + 'TRAFFIC' : { + "multistream": 2, + "stream_type": "L4", + }, + }, "TestSteps": [ ['vswitch', 'add_switch', 'int_br0'], # STEP 0 ['vswitch', 'add_phy_port', 'int_br0'], # STEP 1 @@ -622,12 +630,14 @@ and available in both csv and rst report files. { "Name": "pvvp_pvp_cont", - "Traffic Type": "continuous", "Deployment": "pvvp", "Description": "PVVP and PVP in parallel with Continuous Stream", - "biDirectional": "True", - "iLoad": "100", - "MultiStream": "2", + "Parameters" : { + "TRAFFIC" : { + "traffic_type" : "rfc2544_continuous", + "multistream": 2, + }, + }, "TestSteps": [ ['vswitch', 'add_vport', 'br0'], ['vswitch', 'add_vport', 'br0'], diff --git a/docs/userguide/testusage.rst b/docs/userguide/testusage.rst index 379618d2..9a9a23c0 100755 --- a/docs/userguide/testusage.rst +++ b/docs/userguide/testusage.rst @@ -719,36 +719,19 @@ Mode of operation is driven by configuration parameter -m or --mode "trafficgen-pause" - execute vSwitch and VNF but wait before traffic transmission In case, that VSPERF is executed in "trafficgen" mode, then configuration -of traffic generator should be configured through ``--test-params`` option. -Supported CLI options useful for traffic generator configuration are: - -.. code-block:: console - - 'traffic_type' - One of the supported traffic types. E.g. - rfc2544_throughput, - rfc2544_back2back or rfc2544_continuous - Default value is "rfc2544_throughput". - 'bidirectional' - Specifies if generated traffic will be full-duplex (true) - or half-duplex (false) - Default value is "false". - 'iload' - Defines desired percentage of frame rate used during - continuous stream tests. - Default value is 100. - 'multistream' - Defines number of flows simulated by traffic generator. - Value 0 disables MultiStream feature - Default value is 0. - 'stream_type' - Stream Type is an extension of the "MultiStream" feature. - If MultiStream is disabled, then Stream Type will be - ignored. Stream Type defines ISO OSI network layer used - for simulation of multiple streams. - Default value is "L4". +of traffic generator can be modified through ``TRAFFIC`` dictionary passed to the +``--test-params`` option. It is not needed to specify all values of ``TRAFFIC`` +dictionary. It is sufficient to specify only values, which should be changed. +Detailed description of ``TRAFFIC`` dictionary can be found at +`Configuration of TRAFFIC dictionary +`__ Example of execution of VSPERF in "trafficgen" mode: .. code-block:: console $ ./vsperf -m trafficgen --trafficgen IxNet --conf-file vsperf.conf \ - --test-params "traffic_type=rfc2544_continuous;bidirectional=True;iload=60" + --test-params "TRAFFIC={'traffic_type':'rfc2544_continuous','bidir':'False','framerate':60}" Code change verification by pylint ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/userguide/yardstick.rst b/docs/userguide/yardstick.rst index 985a25ad..c906df8e 100755 --- a/docs/userguide/yardstick.rst +++ b/docs/userguide/yardstick.rst @@ -146,14 +146,10 @@ Example of yaml file: type: Vsperf options: testname: 'p2p_rfc2544_throughput' - traffic_type: 'rfc2544_throughput' - frame_size '64' - bidirectional: 'True' - iload: 100 trafficgen_port1: 'eth1' trafficgen_port2: 'eth3' external_bridge: 'br-ex' - test_params: 'TRAFFICGEN_DURATION=30;' + test_params: 'TRAFFICGEN_DURATION=30;TRAFFIC={'traffic_type':'rfc2544_throughput}' conf_file: '~/vsperf-yardstick.conf' host: vsperf.demo @@ -182,19 +178,9 @@ Section **option** defines details of vswitchperf test scenario. Lot of options are identical to the vswitchperf parameters passed through ``--test-params`` argument. Following options are supported: -- **traffic_type** - specifies the type of traffic executed by traffic generator; - Valid values are ``rfc2544_throughput``, ``rfc2544_continuous`` and ``rfc2544_back2back``. - Default: ``rfc2544_throughput`` - **frame_size** - a packet size for which test should be executed; Multiple packet sizes can be tested by modification of Sequence runner section inside YAML definition. Default: '64' -- **bidirectional** - specifies if traffic will be uni (False) or bi-directional - (True); Default: False -- **iload** - specifies frame rate; Default: 100 -- **multistream** - specifies the number of simulated streams; Default: 0 (i.e. - multistream feature is disabled) -- **stream_type** - specifies network layer used for multistream simulation - the valid values are "L4", "L3" and "L2"; Default: 'L4' - **conf_file** - sets path to the vswitchperf configuration file, which will be uploaded to VM; Default: '~/vsperf-yardstick.conf' - **setup_script** - sets path to the setup script, which will be executed @@ -208,8 +194,10 @@ argument. Following options are supported: - **test_params** - specifies a string with a list of vsperf configuration parameters, which will be passed to the ``--test-params`` CLI argument; Parameters should be stated in the form of ``param=value`` and separated - by a semicolon. Please check VSPERF documentation for details about - available configuration parameters and their data types. + by a semicolon. Configuration of traffic generator is driven by ``TRAFFIC`` + dictionary, which can be also updated by values defined by ``test_params``. + Please check VSPERF documentation for details about available configuration + parameters and their data types. In case that both **test_params** and **conf_file** are specified, then values from **test_params** will override values defined in the configuration file. @@ -220,7 +208,7 @@ expected, that OVS runs at the same node, where the testcase is executed. In cas of more complex OpenStack installation or a need of additional OVS configuration, **setup_script** can be used. -Note: It is essential to specify a configuration for selected traffic generator. +**NOTE** It is essential to specify a configuration for selected traffic generator. In case, that standalone testcase is created, then traffic generator can be selected and configured directly in YAML file by **test_params**. On the other hand, if multiple testcases should be executed with the same traffic generator @@ -259,3 +247,8 @@ In case that any of defined metrics will be lower than defined value, then testcase will be marked as failed. Based on ``action`` policy, yardstick will either stop test execution (value ``assert``) or it will run next test (value ``monitor``). + +**NOTE** The throughput SLA (or any other SLA) cannot be set to a meaningful +value without knowledge of the server and networking environment, possibly +including prior testing in that environment to establish a baseline SLA level +under well-understood circumstances. -- cgit 1.2.3-korg