diff options
Diffstat (limited to 'docs/userguide')
-rwxr-xr-x | docs/userguide/integration.rst | 10 | ||||
-rw-r--r-- | docs/userguide/teststeps.rst | 26 | ||||
-rwxr-xr-x | docs/userguide/testusage.rst | 85 | ||||
-rwxr-xr-x | docs/userguide/yardstick.rst | 29 |
4 files changed, 93 insertions, 57 deletions
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 adbe603b..721fd635 100755 --- a/docs/userguide/testusage.rst +++ b/docs/userguide/testusage.rst @@ -638,7 +638,7 @@ or use ``--vswitch`` and ``--fwdapp`` CLI arguments: .. code-block:: console - $ ./vsperf --conf-file user_settings.py \ + $ ./vsperf phy2phy_cont --conf-file user_settings.py \ --vswitch none \ --fwdapp TestPMD @@ -672,7 +672,57 @@ Supported Packet Forwarding applications are: .. code-block:: console - $ ./vsperf --conf-file <path_to_settings_py> + $ ./vsperf phy2phy_tput --conf-file <path_to_settings_py> + +Executing Packet Forwarding tests with one guest +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +TestPMD with DPDK 16.11 or greater can be used to forward packets as a switch to a single guest using TestPMD vdev +option. To set this configuration the following parameters should be used. + + .. code-block:: python + + VSWITCH = 'none' + PKTFWD = 'TestPMD' + +or use ``--vswitch`` and ``--fwdapp`` CLI arguments: + + .. code-block:: console + + $ ./vsperf pvp_tput --conf-file user_settings.py \ + --vswitch none \ + --fwdapp TestPMD + +Guest forwarding application only supports TestPMD in this configuration. + + .. code-block:: python + + GUEST_LOOPBACK = ['testpmd'] + +For optimal performance one cpu per port +1 should be used for TestPMD. Also set additional params for packet forwarding +application to use the correct number of nb-cores. + + .. code-block:: python + + VSWITCHD_DPDK_ARGS = ['-l', '46,44,42,40,38', '-n', '4', '--socket-mem 1024,0'] + TESTPMD_ARGS = ['--nb-cores=4', '--txq=1', '--rxq=1'] + +For guest TestPMD 3 VCpus should be assigned with the following TestPMD params. + + .. code-block:: python + + GUEST_TESTPMD_PARAMS = ['-l 0,1,2 -n 4 --socket-mem 1024 -- ' + '--burst=64 -i --txqflags=0xf00 ' + '--disable-hw-vlan --nb-cores=2 --txq=1 --rxq=1'] + +Execution of TestPMD can be run with the following command line + + .. code-block:: console + + ./vsperf pvp_tput --vswitch=none --fwdapp=TestPMD --conf-file <path_to_settings_py> + +**NOTE:** To achieve the best 0% loss numbers with rfc2544 throughput testing, other tunings should be applied to host +and guest such as tuned profiles and CPU tunings to prevent possible interrupts to worker threads. VSPERF modes of operation ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -694,36 +744,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 +<http://artifacts.opnfv.org/vswitchperf/docs/index.html#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. |