yardstick: CLI params support for yardstick TCs 59/24359/3
authorMartin Klozik <martinx.klozik@intel.com>
Thu, 10 Nov 2016 15:29:45 +0000 (15:29 +0000)
committerMartin Klozik <martinx.klozik@intel.com>
Wed, 30 Nov 2016 15:46:40 +0000 (15:46 +0000)
Vswitchperf specific class in yardstick was updated to reflect
new functionality of --test-params. These changes have impact
on vsperf documentation and yardstick samples.
As part of this fix following changes were made:
* trafficgen mode can be executed with default configuration
* yardstick specific TC samples were updated
* dummy traffic generator was enhanced to support back2back
* dummy traffic generator was enhanced to accept traffic
results from configuration

JIRA: VSPERF-422
JIRA: VSPERF-205

Change-Id: Ibeaa6ef46bde453e3ca5dee6e4568fc8c3853521
Signed-off-by: Martin Klozik <martinx.klozik@intel.com>
Reviewed-by: Al Morton <acmorton@att.com>
Reviewed-by: Christian Trautman <ctrautma@redhat.com>
Reviewed-by: Bill Michalowski <bmichalo@redhat.com>
Reviewed-by: Antonio Fischetti <antonio.fischetti@intel.com>
Reviewed-by: <sridhar.rao@spirent.com>
conf/03_traffic.conf
docs/userguide/yardstick.rst
tools/pkt_gen/dummy/dummy.py
vsperf
yardstick/tests/p2p_cont.yaml [deleted file]
yardstick/tests/p2p_rfc2544_throughput_sample.yaml [moved from yardstick/tests/p2p_tput.yaml with 71% similarity]
yardstick/tests/rfc2544_back2back_dummy.yaml [moved from yardstick/tests/p2p_back2back.yaml with 53% similarity]
yardstick/tests/rfc2544_continuous_dummy.yaml [new file with mode: 0644]
yardstick/tests/rfc2544_throughput_dummy.yaml [new file with mode: 0644]

index d732762..87210b8 100644 (file)
@@ -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
 
index 18adbdb..f118373 100755 (executable)
@@ -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.
index 3324824..528b590 100755 (executable)
@@ -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))
diff --git a/vsperf b/vsperf
index ee494dc..385f792 100755 (executable)
--- a/vsperf
+++ b/vsperf
@@ -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 (file)
index 5cd6379..0000000
+++ /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'
similarity index 71%
rename from yardstick/tests/p2p_tput.yaml
rename to yardstick/tests/p2p_rfc2544_throughput_sample.yaml
index 7a17245..b633732 100644 (file)
 # 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
similarity index 53%
rename from yardstick/tests/p2p_back2back.yaml
rename to yardstick/tests/rfc2544_back2back_dummy.yaml
index 39ab03e..a3265c5 100644 (file)
 # 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 (file)
index 0000000..fea0af3
--- /dev/null
@@ -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 (file)
index 0000000..81755c5
--- /dev/null
@@ -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'