Updated documentation for stanalone context
[yardstick.git] / docs / testing / user / userguide / opnfv_yardstick_tc080.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International
2 .. License.
3 .. http://creativecommons.org/licenses/by/4.0
4 .. (c) OPNFV, Huawei Technologies Co.,Ltd and others.
5
6 *************************************
7 Yardstick Test Case Description TC080
8 *************************************
9
10 .. _Ping: https://linux.die.net/man/8/ping
11
12 +-----------------------------------------------------------------------------+
13 |Network Latency                                                              |
14 |                                                                             |
15 +--------------+--------------------------------------------------------------+
16 |test case id  | OPNFV_YARDSTICK_TC080_NETWORK_LATENCY_BETWEEN_CONTAINER      |
17 |              |                                                              |
18 +--------------+--------------------------------------------------------------+
19 |metric        | RTT (Round Trip Time)                                        |
20 |              |                                                              |
21 +--------------+--------------------------------------------------------------+
22 |test purpose  | The purpose of TC080 is to do a basic verification that      |
23 |              | network latency is within acceptable boundaries when packets |
24 |              | travel between containers located in two different           |
25 |              | Kubernetes pods.                                             |
26 |              |                                                              |
27 |              | The purpose is also to be able to spot the trends.           |
28 |              | Test results, graphs and similar shall be stored for         |
29 |              | comparison reasons and product evolution understanding       |
30 |              | between different OPNFV versions and/or configurations.      |
31 |              |                                                              |
32 +--------------+--------------------------------------------------------------+
33 |test tool     | ping                                                         |
34 |              |                                                              |
35 |              | Ping is a computer network administration software utility   |
36 |              | used to test the reachability of a host on an Internet       |
37 |              | Protocol (IP) network. It measures the round-trip time for   |
38 |              | packet sent from the originating host to a destination       |
39 |              | computer that are echoed back to the source.                 |
40 |              |                                                              |
41 |              | Ping is normally part of any Linux distribution, hence it    |
42 |              | doesn't need to be installed. It is also part of the         |
43 |              | Yardstick Docker image.                                      |
44 |              |                                                              |
45 +--------------+--------------------------------------------------------------+
46 |test topology | Ping packets (ICMP protocol's mandatory ECHO_REQUEST         |
47 |              | datagram) are sent from host container to target container   |
48 |              | to elicit ICMP ECHO_RESPONSE.                                |
49 |              |                                                              |
50 +--------------+--------------------------------------------------------------+
51 |configuration | file: opnfv_yardstick_tc080.yaml                             |
52 |              |                                                              |
53 |              | Packet size 200 bytes. Test duration 60 seconds.             |
54 |              | SLA RTT is set to maximum 10 ms.                             |
55 |              |                                                              |
56 +--------------+--------------------------------------------------------------+
57 |applicability | This test case can be configured with different:             |
58 |              |                                                              |
59 |              |  * packet sizes;                                             |
60 |              |  * burst sizes;                                              |
61 |              |  * ping intervals;                                           |
62 |              |  * test durations;                                           |
63 |              |  * test iterations.                                          |
64 |              |                                                              |
65 |              | Default values exist.                                        |
66 |              |                                                              |
67 |              | SLA is optional. The SLA in this test case serves as an      |
68 |              | example. Considerably lower RTT is expected, and also normal |
69 |              | to achieve in balanced L2 environments. However, to cover    |
70 |              | most configurations, both bare metal and fully virtualized   |
71 |              | ones, this value should be possible to achieve and           |
72 |              | acceptable for black box testing. Many real time             |
73 |              | applications start to suffer badly if the RTT time is higher |
74 |              | than this. Some may suffer bad also close to this RTT, while |
75 |              | others may not suffer at all. It is a compromise that may    |
76 |              | have to be tuned for different configuration purposes.       |
77 |              |                                                              |
78 +--------------+--------------------------------------------------------------+
79 |usability     | This test case should be run in Kunernetes environment.      |
80 |              |                                                              |
81 +--------------+--------------------------------------------------------------+
82 |references    | Ping_                                                        |
83 |              |                                                              |
84 |              | ETSI-NFV-TST001                                              |
85 |              |                                                              |
86 +--------------+--------------------------------------------------------------+
87 |pre-test      | The test case Docker image (openretriever/yardstick) needs   |
88 |conditions    | to be pulled into Kubernetes environment.                    |
89 |              |                                                              |
90 |              | No further requirements have been identified.                |
91 |              |                                                              |
92 +--------------+--------------------------------------------------------------+
93 |test sequence | description and expected result                              |
94 |              |                                                              |
95 +--------------+--------------------------------------------------------------+
96 |step 1        | Two containers are booted, as server and client.             |
97 |              |                                                              |
98 +--------------+--------------------------------------------------------------+
99 |step 2        | Yardstick is connected with the server container by using    |
100 |              | ssh. 'ping_benchmark' bash script is copied from Jump Host   |
101 |              | to the server container via the ssh tunnel.                  |
102 |              |                                                              |
103 +--------------+--------------------------------------------------------------+
104 |step 3        | Ping is invoked. Ping packets are sent from server container |
105 |              | to client container. RTT results are calculated and checked  |
106 |              | against the SLA. Logs are produced and stored.               |
107 |              |                                                              |
108 |              | Result: Logs are stored.                                     |
109 |              |                                                              |
110 +--------------+--------------------------------------------------------------+
111 |step 4        | Two containers are deleted.                                  |
112 |              |                                                              |
113 +--------------+--------------------------------------------------------------+
114 |test verdict  | Test should not PASS if any RTT is above the optional SLA    |
115 |              | value, or if there is a test case execution problem.         |
116 |              |                                                              |
117 +--------------+--------------------------------------------------------------+