diff options
-rwxr-xr-x | ci/build-vsperf.sh | 24 | ||||
-rw-r--r-- | conf/03_traffic.conf | 23 | ||||
-rwxr-xr-x | docs/userguide/yardstick.rst | 149 | ||||
-rwxr-xr-x | tools/pkt_gen/dummy/dummy.py | 35 | ||||
-rwxr-xr-x | vsperf | 7 | ||||
-rw-r--r-- | yardstick/tests/p2p_cont.yaml | 74 | ||||
-rw-r--r-- | yardstick/tests/p2p_rfc2544_throughput_sample.yaml (renamed from yardstick/tests/p2p_tput.yaml) | 20 | ||||
-rw-r--r-- | yardstick/tests/rfc2544_back2back_dummy.yaml (renamed from yardstick/tests/p2p_back2back.yaml) | 35 | ||||
-rw-r--r-- | yardstick/tests/rfc2544_continuous_dummy.yaml | 86 | ||||
-rw-r--r-- | yardstick/tests/rfc2544_throughput_dummy.yaml | 86 |
10 files changed, 379 insertions, 160 deletions
diff --git a/ci/build-vsperf.sh b/ci/build-vsperf.sh index 4d6acf70..24fbb8fa 100755 --- a/ci/build-vsperf.sh +++ b/ci/build-vsperf.sh @@ -43,10 +43,10 @@ VSPERFENV_DIR="$HOME/vsperfenv" # CI job specific configuration # VERIFY - run basic set of TCs with default settings TESTCASES_VERIFY="vswitch_add_del_bridge vswitch_add_del_bridges vswitch_add_del_vport vswitch_add_del_vports vswitch_vports_add_del_flow" -TESTPARAM_VERIFY="--integration --test-params HUGEPAGE_RAM_ALLOCATION=2097152" +TESTPARAM_VERIFY="--integration" # MERGE - run selected TCs with default settings TESTCASES_MERGE="vswitch_add_del_bridge vswitch_add_del_bridges vswitch_add_del_vport vswitch_add_del_vports vswitch_vports_add_del_flow" -TESTPARAM_MERGE="--integration --test-params HUGEPAGE_RAM_ALLOCATION=2097152" +TESTPARAM_MERGE="--integration" # DAILY - run selected TCs for defined packet sizes TESTCASES_DAILY='phy2phy_tput back2back phy2phy_tput_mod_vlan phy2phy_scalability pvp_tput pvp_back2back pvvp_tput pvvp_back2back' TESTPARAM_DAILY='--test-params TRAFFICGEN_PKT_SIZES=(64,128,512,1024,1518)' @@ -170,8 +170,10 @@ function execute_vsperf() { LOG_SUBDIR="OvsDpdkVhost" LOG_FILE="${LOG_FILE_PREFIX}_${LOG_SUBDIR}_${DATE_SUFFIX}.log" + hugepages_info > $LOG_FILE echo " $VSPERF_BIN $OPNFVPOD --vswitch OvsDpdkVhost --vnf QemuDpdkVhostUser $CONF_FILE $TESTPARAM $TESTCASES > $LOG_FILE" - $VSPERF_BIN $OPNFVPOD --vswitch OvsDpdkVhost --vnf QemuDpdkVhostUser $CONF_FILE $TESTPARAM $TESTCASES &> $LOG_FILE + $VSPERF_BIN $OPNFVPOD --vswitch OvsDpdkVhost --vnf QemuDpdkVhostUser $CONF_FILE $TESTPARAM $TESTCASES &>> $LOG_FILE + hugepages_info >> $LOG_FILE ;; esac @@ -331,6 +333,19 @@ function dependencies_check() { fi } +# configure hugepages +function configure_hugepages() { + sudo bash -c "echo 2048 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages" + sudo bash -c "echo 0 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages" +} + +# dump hugepages configuration +function hugepages_info() { + echo "-------------------------------------------------------------------" + head /sys/devices/system/node/node*/hugepages/hugepages*/* + echo "-------------------------------------------------------------------" +} + # # main # @@ -361,6 +376,9 @@ dependencies_check # initialization initialize_logdir +# configure hugepages +configure_hugepages + # execute job based on passed parameter case $1 in "verify") diff --git a/conf/03_traffic.conf b/conf/03_traffic.conf index d7327629..87210b8d 100644 --- a/conf/03_traffic.conf +++ b/conf/03_traffic.conf @@ -40,6 +40,29 @@ TRAFFICGEN_RFC2544_TESTS = 1 TRAFFICGEN_RFC2889_TRIALS = 1 TRAFFICGEN_LOSSRATE = 0.0 +############################## +# DUMMY Configuration -- BEGIN + +# By default, dummy traffic generator asks for "measured" values. +# Following dictionary allows to preconfigure these values and +# to avoid user interaction. It can be useful for automated +# integration tests. +# Example of values for continuous traffic type: +# TRAFFICGEN_DUMMY_RESULTS{'frames rx': 500000, +# 'frames tx': 500000, +# 'rx rate %': 100, +# 'tx rate %': 100, +# 'frameloss %': 0, +# 'min latency': 1, +# 'max latency': 15, +# 'avg latency': 2.5, +# } +# +TRAFFICGEN_DUMMY_RESULTS = {} + +# DUMMY Configuration -- END +############################ + ############################# # IXIA Configuration -- BEGIN diff --git a/docs/userguide/yardstick.rst b/docs/userguide/yardstick.rst index 18adbdbe..f118373b 100755 --- a/docs/userguide/yardstick.rst +++ b/docs/userguide/yardstick.rst @@ -34,16 +34,42 @@ Please note, that yardstick uses OpenStack for execution of testcases. OpenStack must be installed with Heat and Neutron services. Otherwise vswitchperf testcases cannot be executed. -Vswitchperf VM image preparation -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +VM image with vswitchperf +^^^^^^^^^^^^^^^^^^^^^^^^^ + +A special VM image is required for execution of vswitchperf specific testcases +by yardstick. It is possible to use a sample VM image available at OPNFV +artifactory or to build customized image. + +Sample VM image with vswitchperf +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Sample VM image is available at vswitchperf section of OPNFV artifactory +for free download: + +.. code-block:: console + + $ wget http://artifacts.opnfv.org/vswitchperf/vnf/vsperf-yardstick-image.qcow2 + +This image can be used for execution of sample testcases with dummy traffic +generator. + +**NOTE:** Traffic generators might require an installation of client software. +This software is not included in the sample image and must be installed by user. + +**NOTE:** This image will be updated only in case, that new features related +to yardstick integration will be added to the vswitchperf. + +Preparation of custom VM image +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In general, any Linux distribution supported by vswitchperf can be used as a base image for vswitchperf. One of the possibilities is to modify vloop-vnf -image, which can be downloaded from `<http://artifacts.opnfv.org/>`__. +image, which can be downloaded from `<http://artifacts.opnfv.org/vswitchperf.html/>`__. .. code-block:: console - $ wget http://artifacts.opnfv.org/vswitchperf/vloop-vnf-ubuntu-14.04_20151216.qcow2 + $ wget http://artifacts.opnfv.org/vswitchperf/vnf/vloop-vnf-ubuntu-14.04_20160823.qcow2 Please follow the `installation instructions <http://artifacts.opnfv.org/vswitchperf/docs/configguide/installation.html>`__ to @@ -55,17 +81,52 @@ In case, that selected traffic generator requires installation of additional client software, please follow appropriate documentation. For example in case of IXIA, you would need to install IxOS and IxNetowrk TCL API. -Final image with vswitchperf must be uploaded into the glance service and +VM image usage +~~~~~~~~~~~~~~ + +Image with vswitchperf must be uploaded into the glance service and vswitchperf specific flavor configured, e.g.: .. code-block:: console - $ glance --os-username admin --os-image-api-version 1 image-create --name - vsperf --is-public true --disk-format qcow2 --container-format bare --file - image.qcow2 + $ glance --os-username admin --os-image-api-version 1 image-create --name \ + vsperf --is-public true --disk-format qcow2 --container-format bare --file \ + vsperf-yardstick-image.qcow2 $ nova --os-username admin flavor-create vsperf-flavor 100 2048 25 1 +Testcase execution +^^^^^^^^^^^^^^^^^^ + +After installation, yardstick is available as python package within yardstick +specific virtual environment. It means, that yardstick environment must be +enabled before the test execution, e.g.: + +.. code-block:: console + + source ~/yardstick_venv/bin/activate + + +Next step is configuration of OpenStack environment, e.g. in case of devstack: + +.. code-block:: console + + source /opt/openstack/devstack/openrc + export EXTERNAL_NETWORK=public + +Vswitchperf testcases executable by yardstick are located at vswitchperf +repository inside ``yardstick/tests`` directory. Example of their download +and execution follows: + +.. code-block:: console + + git clone https://gerrit.opnfv.org/gerrit/vswitchperf + cd vswitchperf + + yardstick -d task start yardstick/tests/rfc2544_throughput_dummy.yaml + +**NOTE:** Optional argument ``-d`` shows debug output. + Testcase customization ^^^^^^^^^^^^^^^^^^^^^^ @@ -84,22 +145,22 @@ Example of yaml file: - type: Vsperf options: - testname: 'rfc2544_p2p_tput' + testname: 'p2p_rfc2544_throughput' traffic_type: 'rfc2544' - pkt_sizes: '64' + frame_size '64' bidirectional: 'True' iload: 100 - duration: 30 trafficgen_port1: 'eth1' trafficgen_port2: 'eth3' external_bridge: 'br-ex' - conf-file: '~/vsperf-yardstick.conf' + test_params: 'TRAFFICGEN_DURATION=30;' + conf_file: '~/vsperf-yardstick.conf' host: vsperf.demo runner: type: Sequence - scenario_option_name: pkt_sizes + scenario_option_name: frame_size sequence: - 64 - 128 @@ -123,22 +184,19 @@ argument. Following options are supported: - **traffic_type** - specifies the type of traffic executed by traffic generator; valid values are "rfc2544", "continuous" and "back2back"; Default: 'rfc2544' -- **pkt_sizes** - a packet size for which test should be executed; +- **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' -- **duration** - sets duration for which traffic will be generated; Default: 30 - **bidirectional** - specifies if traffic will be uni (False) or bi-directional (True); Default: False - **iload** - specifies frame rate; Default: 100 -- **rfc2544_tests** - specifies the number of tests performed for each packet - size - **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 +- **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 +- **setup_script** - sets path to the setup script, which will be executed during setup and teardown phases - **trafficgen_port1** - specifies device name of 1st interface connected to the trafficgen @@ -146,16 +204,27 @@ argument. Following options are supported: the trafficgen - **external_bridge** - specifies name of external bridge configured in OVS; Default: 'br-ex' +- **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. + In case that both **test_params** and **conf_file** are specified, + then values from **test_params** will override values defined + in the configuration file. In case that **trafficgen_port1** and/or **trafficgen_port2** are defined, then these interfaces will be inserted into the **external_bridge** of OVS. It is expected, that OVS runs at the same node, where the testcase is executed. In case of more complex OpenStack installation or a need of additional OVS configuration, -**setup-script** can be used. +**setup_script** can be used. -Note: It is essential to prepare customized configuration file for the vsperf -and to specify its name by **conf-file** option. Config file must specify, which -traffic generator will be used and configure traffic generator specific options. +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 +settings, then a customized configuration file should be prepared and its name +passed by **conf_file** option. Section runner ~~~~~~~~~~~~~~ @@ -163,7 +232,7 @@ Section runner Yardstick supports several `runner types <http://artifacts.opnfv.org/yardstick/docs/userguide/architecture.html#runner-types>`__. In case of vswitchperf specific TCs, **Sequence** runner type can be used to -execute the testcase for given list of packet sizes. +execute the testcase for given list of frame sizes. Section sla @@ -189,35 +258,3 @@ 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``). - -Testcase execution -^^^^^^^^^^^^^^^^^^ - -After installation, yardstick is available as python package within yardstick -specific virtual environment. It means, that before test execution yardstick -environment must be enabled, e.g.: - -.. code-block:: console - - source ~/yardstick_venv/bin/activate - - -Next step is configuration of OpenStack environment, e.g. in case of devstack: - -.. code-block:: console - - source /opt/openstack/devstack/openrc - export EXTERNAL_NETWORK=public - -Vswitchperf testcases executable by yardstick are located at vswitchperf -repository inside ``yardstick/tests`` directory. Example of their download -and execution follows: - -.. code-block:: console - - git clone https://gerrit.opnfv.org/gerrit/vswitchperf - cd vswitchperf - - yardstick -d task start yardstick/tests/p2p_cont.yaml - -Note: Optional argument ``-d`` shows debug output. diff --git a/tools/pkt_gen/dummy/dummy.py b/tools/pkt_gen/dummy/dummy.py index 3324824c..528b5902 100755 --- a/tools/pkt_gen/dummy/dummy.py +++ b/tools/pkt_gen/dummy/dummy.py @@ -25,6 +25,7 @@ own. import json +from conf import settings from tools.pkt_gen import trafficgen from core.results.results_constants import ResultsConstants @@ -76,7 +77,10 @@ def get_user_traffic(traffic_type, traffic_conf, flow_conf, traffic_stats): % (traffic_type, traffic_conf, json.dumps(flow_conf, indent=4))) for stat in traffic_stats: - results.append(_get_user_traffic_stat(stat)) + if stat in settings.getValue('TRAFFICGEN_DUMMY_RESULTS'): + results.append(settings.getValue('TRAFFICGEN_DUMMY_RESULTS')[stat]) + else: + results.append(_get_user_traffic_stat(stat)) return results @@ -206,6 +210,33 @@ class Dummy(trafficgen.ITrafficGenerator): result[ResultsConstants.FRAME_LOSS_PERCENT] = float(results[7]) return result + def send_rfc2544_back2back(self, traffic=None, tests=1, duration=2, + lossrate=0.0): + """ + Send traffic per RFC2544 back2back test specifications. + """ + traffic_ = self.traffic_defaults.copy() + result = {} + + if traffic: + traffic_ = trafficgen.merge_spec(traffic_, traffic) + + results = get_user_traffic( + 'back2back', + '%d tests, %d seconds iterations, %f packet loss, multistream ' + '%s' % (tests, duration, lossrate, traffic['multistream']), + traffic_, + ('b2b frames', 'b2b frame loss %')) + + framesize = traffic_['l2']['framesize'] + + # builds results by using user-supplied values + # and guessing remainder using available info + result[ResultsConstants.B2B_FRAMES] = float(results[0]) + result[ResultsConstants.B2B_FRAME_LOSS_PERCENT] = float(results[1]) + return result + + if __name__ == '__main__': TRAFFIC = { @@ -219,4 +250,6 @@ if __name__ == '__main__': with Dummy() as dev: print(dev.send_burst_traffic(traffic=TRAFFIC)) print(dev.send_cont_traffic(traffic=TRAFFIC)) + print(dev.send_rfc2544_throughput(traffic=TRAFFIC)) + print(dev.send_rfc2544_back2back(traffic=TRAFFIC)) print(dev.send_rfc(traffic=TRAFFIC)) @@ -504,8 +504,11 @@ def main(): # than both a settings file and environment variables settings.load_from_dict(args) + settings.setValue('mode', args['mode']) + # set dpdk and ovs paths accorfing to VNF and VSWITCH - functions.settings_update_paths() + if settings.getValue('mode') != 'trafficgen': + functions.settings_update_paths() # if required, handle list-* operations handle_list_options(args) @@ -584,8 +587,6 @@ def main(): # for backward compatibility settings.setValue('WHITELIST_NICS', list(nic['pci'] for nic in nic_list)) - settings.setValue('mode', args['mode']) - # generate results directory name date = datetime.datetime.fromtimestamp(time.time()) results_dir = "results_" + date.strftime('%Y-%m-%d_%H-%M-%S') diff --git a/yardstick/tests/p2p_cont.yaml b/yardstick/tests/p2p_cont.yaml deleted file mode 100644 index 5cd63793..00000000 --- a/yardstick/tests/p2p_cont.yaml +++ /dev/null @@ -1,74 +0,0 @@ -# Copyright 2016 Intel Corporation. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# VSPERF specific configuration file for execution of continuous traffic. -# Traffic executed by traffic generator is forwarded directly between -# interfaces connected to the traffic generator. So test will only -# benchmark the performance of OVS external bridge at controller node. -# For details about supported test options see following file from -# the yardstick repository: -# -# yardstick/benchmark/scenarios/networking/vsperf.py - -schema: "yardstick:task:0.1" - -scenarios: -- - type: Vsperf - options: - testname: 'rfc2544_p2p_continuous' - traffic_type: 'continuous' - pkt_sizes: '64' - bidirectional: 'True' - iload: 100 - duration: 30 - trafficgen_port1: 'eth1' - trafficgen_port2: 'eth3' - external_bridge: 'br-ex' - conf-file: '~/vsperf-yardstick.conf' - - host: vsperf.demo - - runner: - type: Sequence - scenario_option_name: pkt_sizes - sequence: - - 64 - - 128 - - 512 - - 1024 - - 1518 - sla: - metrics: 'throughput_rx_fps' - throughput_rx_fps: 500000 - action: monitor - -context: - name: demo - image: vsperf - flavor: vsperf-flavor - user: ubuntu - - placement_groups: - pgrp1: - policy: "availability" - - servers: - vsperf: - floating_ip: true - placement: "pgrp1" - - networks: - test: - cidr: '10.0.0.0/24' diff --git a/yardstick/tests/p2p_tput.yaml b/yardstick/tests/p2p_rfc2544_throughput_sample.yaml index 7a172450..b633732b 100644 --- a/yardstick/tests/p2p_tput.yaml +++ b/yardstick/tests/p2p_rfc2544_throughput_sample.yaml @@ -16,10 +16,10 @@ # traffic. Traffic executed by traffic generator is forwarded directly # between interfaces connected to the traffic generator. So test will only # benchmark the performance of OVS external bridge at controller node. -# For details about supported test options see following file from -# the yardstick repository: +# Details about supported test options and test case execution can be +# found in VSPERF documentation: # -# yardstick/benchmark/scenarios/networking/vsperf.py +# http://artifacts.opnfv.org/vswitchperf/docs/userguide/yardstick.html schema: "yardstick:task:0.1" @@ -27,22 +27,22 @@ scenarios: - type: Vsperf options: - testname: 'rfc2544_p2p_tput' + testname: 'p2p_rfc2544_throughput' traffic_type: 'rfc2544' - pkt_sizes: '64' + frame_size: '64' bidirectional: 'True' iload: 100 - duration: 30 + test_params: 'TRAFFICGEN_DURATION=30;' trafficgen_port1: 'eth1' trafficgen_port2: 'eth3' external_bridge: 'br-ex' - conf-file: '~/vsperf-yardstick.conf' + conf_file: '~/vsperf-yardstick.conf' host: vsperf.demo runner: type: Sequence - scenario_option_name: pkt_sizes + scenario_option_name: frame_size sequence: - 64 - 128 @@ -50,6 +50,10 @@ scenarios: - 1024 - 1518 sla: + # 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. metrics: 'throughput_rx_fps' throughput_rx_fps: 500000 action: monitor diff --git a/yardstick/tests/p2p_back2back.yaml b/yardstick/tests/rfc2544_back2back_dummy.yaml index 39ab03e1..a3265c52 100644 --- a/yardstick/tests/p2p_back2back.yaml +++ b/yardstick/tests/rfc2544_back2back_dummy.yaml @@ -12,14 +12,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -# VSPERF specific configuration file for execution of back2back traffic. -# Traffic executed by traffic generator is forwarded directly between -# interfaces connected to the traffic generator. So test will only -# benchmark the performance of OVS external bridge at controller node. -# For details about supported test options see following file from -# the yardstick repository: +# VSPERF specific configuration file for execution of RFC2544 back2back +# traffic. +# This test uses a dummy traffic generator, which does not execute a real +# traffic. The purpose of this test is to demonstrate vsperf execution +# by yardstick environment. Provided 'test_params' option can modified +# to use a real traffic generator. +# Details about supported test options and test case execution can be +# found in VSPERF documentation: # -# yardstick/benchmark/scenarios/networking/vsperf.py +# http://artifacts.opnfv.org/vswitchperf/docs/userguide/yardstick.html schema: "yardstick:task:0.1" @@ -27,22 +29,21 @@ scenarios: - type: Vsperf options: - testname: 'rfc2544_p2p_back2back' + testname: 'rfc2544_back2back' traffic_type: 'back2back' - pkt_sizes: '64' + frame_size: '64' bidirectional: 'True' iload: 100 - duration: 30 - trafficgen_port1: 'eth1' - trafficgen_port2: 'eth3' - external_bridge: 'br-ex' - conf-file: '~/vsperf-yardstick.conf' + test_params: 'TRAFFICGEN="Dummy"; + TRAFFICGEN_DUMMY_RESULTS={ + "b2b frames":"10000", + "b2b frame loss %":"0.0"}' host: vsperf.demo runner: type: Sequence - scenario_option_name: pkt_sizes + scenario_option_name: frame_size sequence: - 64 - 128 @@ -50,6 +51,10 @@ scenarios: - 1024 - 1518 sla: + # 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. metrics: 'b2b_frames' b2b_frames: 1 action: monitor diff --git a/yardstick/tests/rfc2544_continuous_dummy.yaml b/yardstick/tests/rfc2544_continuous_dummy.yaml new file mode 100644 index 00000000..fea0af3f --- /dev/null +++ b/yardstick/tests/rfc2544_continuous_dummy.yaml @@ -0,0 +1,86 @@ +# Copyright 2016 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# VSPERF specific configuration file for execution of RFC2544 continuous +# traffic. +# This test uses a dummy traffic generator, which does not execute a real +# traffic. The purpose of this test is to demonstrate vsperf execution +# by yardstick environment. Provided 'test_params' option can modified +# to use a real traffic generator. +# Details about supported test options and test case execution can be +# found in VSPERF documentation: +# +# http://artifacts.opnfv.org/vswitchperf/docs/userguide/yardstick.html + +schema: "yardstick:task:0.1" + +scenarios: +- + type: Vsperf + options: + testname: 'rfc2544_continuous' + traffic_type: 'continuous' + frame_size: '64' + bidirectional: 'True' + iload: 100 + test_params: 'TRAFFICGEN_DURATION=30; + TRAFFICGEN="Dummy"; + TRAFFICGEN_DUMMY_RESULTS={ + "frames tx":15000000, + "frames rx":15000000, + "tx rate %":100, + "rx rate %":100, + "min latency":1, + "max latency":15, + "avg latency":2.5, + "frameloss %":0,}' + + host: vsperf.demo + + runner: + type: Sequence + scenario_option_name: frame_size + sequence: + - 64 + - 128 + - 512 + - 1024 + - 1518 + sla: + # 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. + metrics: 'throughput_rx_fps' + throughput_rx_fps: 500000 + action: monitor + +context: + name: demo + image: vsperf + flavor: vsperf-flavor + user: ubuntu + + placement_groups: + pgrp1: + policy: "availability" + + servers: + vsperf: + floating_ip: true + placement: "pgrp1" + + networks: + test: + cidr: '10.0.0.0/24' diff --git a/yardstick/tests/rfc2544_throughput_dummy.yaml b/yardstick/tests/rfc2544_throughput_dummy.yaml new file mode 100644 index 00000000..81755c50 --- /dev/null +++ b/yardstick/tests/rfc2544_throughput_dummy.yaml @@ -0,0 +1,86 @@ +# Copyright 2016 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# VSPERF specific configuration file for execution of RFC2544 throughput +# traffic. +# This test uses a dummy traffic generator, which does not execute a real +# traffic. The purpose of this test is to demonstrate vsperf execution +# by yardstick environment. Provided 'test_params' option can modified +# to use a real traffic generator. +# Details about supported test options and test case execution can be +# found in VSPERF documentation: +# +# http://artifacts.opnfv.org/vswitchperf/docs/userguide/yardstick.html + +schema: "yardstick:task:0.1" + +scenarios: +- + type: Vsperf + options: + testname: 'rfc2544_throughput' + traffic_type: 'rfc2544' + frame_size: '64' + bidirectional: 'True' + iload: 100 + test_params: 'TRAFFICGEN_DURATION=30; + TRAFFICGEN="Dummy"; + TRAFFICGEN_DUMMY_RESULTS={ + "frames tx":15000000, + "frames rx":15000000, + "tx rate %":100, + "rx rate %":100, + "min latency":1, + "max latency":15, + "avg latency":2.5, + "frameloss %":0,}' + + host: vsperf.demo + + runner: + type: Sequence + scenario_option_name: frame_size + sequence: + - 64 + - 128 + - 512 + - 1024 + - 1518 + sla: + # 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. + metrics: 'throughput_rx_fps' + throughput_rx_fps: 500000 + action: monitor + +context: + name: demo + image: vsperf + flavor: vsperf-flavor + user: ubuntu + + placement_groups: + pgrp1: + policy: "availability" + + servers: + vsperf: + floating_ip: true + placement: "pgrp1" + + networks: + test: + cidr: '10.0.0.0/24' |