Add test case description and task file for TC038 89/5489/3
authorJo¶rgen Karlsson <jorgen.w.karlsson@ericsson.com>
Mon, 4 Jan 2016 13:30:10 +0000 (14:30 +0100)
committerJörgen Karlsson <jorgen.w.karlsson@ericsson.com>
Thu, 7 Jan 2016 10:48:05 +0000 (10:48 +0000)
JIRA: YARDSTICK-214

Change-Id: I3a2358e8c36755a684f09524bd6fc8af9bf43f60
Signed-off-by: Jo¶rgen Karlsson <jorgen.w.karlsson@ericsson.com>
docs/yardstick/opnfv_yardstick_tc038.rst [new file with mode: 0644]
tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml [new file with mode: 0644]

diff --git a/docs/yardstick/opnfv_yardstick_tc038.rst b/docs/yardstick/opnfv_yardstick_tc038.rst
new file mode 100644 (file)
index 0000000..583555e
--- /dev/null
@@ -0,0 +1,88 @@
+*************************************
+Yardstick Test Case Description TC038
+*************************************
++-----------------------------------------------------------------------------+
+|Network Performance                                                          |
++==============+==============================================================+
+|test case id  | OPNFV_YARDSTICK_TC038_NW PERF                                |
++--------------+--------------------------------------------------------------+
+|metric        | Number of flows, latency, throughput, CPU load, packet loss  |
++--------------+--------------------------------------------------------------+
+|test purpose  | To evaluate the IaaS network performance with regards to     |
+|              | flows and throughput, such as if and how different amounts   |
+|              | of flows matter for the throughput between hosts on different|
+|              | compute blades. Typically e.g. the performance of a vSwitch  |
+|              | depends on the number of flows running through it. Also      |
+|              | performance of other equipment or entities can depend        |
+|              | on the number of flows or the packet sizes used.             |
+|              | The purpose is also to be able to spot trends. Test results, |
+|              | graphs ans similar shall be stored for comparison reasons and|
+|              | product evolution understanding between different OPNFV      |
+|              | versions and/or configurations.                              |
++--------------+--------------------------------------------------------------+
+|configuration | file: opnfv_yardstick_tc038.yaml                             |
+|              |                                                              |
+|              | Packet size: 64 bytes                                        |
+|              |                                                              |
+|              | Number of ports: 1, 10, 50, 100, 300, 500, 750 and 1000.     |
+|              | The amount configured ports map from 2 up to 1001000 flows,  |
+|              | respectively. Each port amount is run ten times, for 20      |
+|              | seconds each. Then the next port_amount is run, and so on.   |
+|              |                                                              |
+|              | During the test CPU load on both client and server, and the  |
+|              | network latency between the client and server are measured.  |
+|              |                                                              |
+|              | The client and server are distributed on different HW.       |
+|              |                                                              |
+|              | For SLA max_ppm is set to 1000.                              |
++--------------+--------------------------------------------------------------+
+|test tool     | pktgen                                                       |
+|              |                                                              |
+|              | (Pktgen is not always part of a Linux distribution, hence it |
+|              | needs to be installed. It is part of the Yardstick Glance    |
+|              | image.                                                       |
+|              | As an example see the /yardstick/tools/ directory for how    |
+|              | to generate a Linux image with pktgen included.)             |
+|              |                                                              |
+|              | ping                                                         |
+|              |                                                              |
+|              | Ping is normally part of any Linux distribution, hence it    |
+|              | doesn't need to be installed. It is also part of the         |
+|              | Yardstick Glance image.                                      |
+|              | (For example also a Cirros image can be downloaded from      |
+|              | https://download.cirros-cloud.net, it includes ping)         |
+|              |                                                              |
+|              | mpstat                                                       |
+|              |                                                              |
+|              | (Mpstat is not always part of a Linux distribution, hence it |
+|              | needs to be installed. It is part of the Yardstick Glance    |
+|              | image.                                                       |
++--------------+--------------------------------------------------------------+
+|references    | Ping and Mpstat man pages                                    |
+|              |                                                              |
+|              |https://www.kernel.org/doc/Documentation/networking/pktgen.txt|
+|              |                                                              |
+|              |ETSI-NFV-TST038                                               |
++--------------+--------------------------------------------------------------+
+|applicability | Test can be configured with different packet sizes, amount   |
+|              | of flows and test duration. Default values exist.            |
+|              |                                                              |
+|              |SLA (optional):                                               |
+|              |    max_ppm: The number of packets per million packets sent   |
+|              |             that are acceptable to lose, i.e. not received.  |
++--------------+--------------------------------------------------------------+
+|pre-test      | The test case image needs to be installed into Glance        |
+|conditions    | with pktgen included in it.                                  |
+|              |                                                              |
+|              | No POD specific requirements have been identified.           |
++--------------+------+----------------------------------+--------------------+
+|test sequence | step | description                      | result             |
+|              +------+----------------------------------+--------------------+
+|              |  1   | The hosts are installed, as      | Logs are stored    |
+|              |      | server and client. pktgen is     |                    |
+|              |      | invoked and logs are produced    |                    |
+|              |      | and stored.                      |                    |
++--------------+------+----------------------------------+--------------------+
+|test verdict  | Fails only if SLA is not passed, or if there is a test case  |
+|              | execution problem.                                           |
++--------------+--------------------------------------------------------------+
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc038.yaml
new file mode 100644 (file)
index 0000000..7b72d1c
--- /dev/null
@@ -0,0 +1,83 @@
+---
+# Yardstick TC038 config file
+# Measure network throughput and packet loss using pktgen.
+# Different amounts of flows are tested with, from 2 up to 1001000.
+# All tests are run 10 times each. First 10 times with the least
+# amount of ports, then 10 times with the next amount of ports,
+# and so on until all packet sizes have been run with.
+#
+# During the measurements system load and network latency are
+# recorded/measured using ping and mpstat, respectively.
+
+scenarios:
+-
+  type: CPUload
+  run_in_background: true
+
+  options:
+    interval: 1
+
+  host: demeter.yardstick-TC038
+-
+  type: CPUload
+  run_in_background: true
+
+  options:
+    interval: 1
+
+  host: poseidon.yardstick-TC038
+-
+  type: Ping
+  run_in_background: true
+
+  options:
+    packetsize: 100
+
+  host: demeter.yardstick-TC038
+  target: poseidon.yardstick-TC038
+
+  sla:
+    max_rtt: 10
+    action: monitor
+{% for num_ports in [1, 10, 50, 100, 300, 500, 750, 1000] %}
+-
+  type: Pktgen
+  options:
+    packetsize: 64
+    number_of_ports: {{num_ports}}
+    duration: 20
+
+  host: demeter.yardstick-TC038
+  target: poseidon.yardstick-TC038
+
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 1
+
+  sla:
+    max_ppm: 1000
+    action: monitor
+{% endfor %}
+
+context:
+  name: yardstick-TC038
+  image: yardstick-trusty-server
+  flavor: yardstick-flavor
+  user: ec2-user
+
+  placement_groups:
+    pgrp1:
+      policy: "availability"
+
+  servers:
+    demeter:
+      floating_ip: true
+      placement: "pgrp1"
+    poseidon:
+      floating_ip: true
+      placement: "pgrp1"
+
+  networks:
+    test:
+      cidr: '10.0.1.0/24'